home *** CD-ROM | disk | FTP | other *** search
Wrap
Text File | 1996-04-14 | 244.0 KB | 10,585 lines
UEDITCTLloadmem(control\ued1.ctl) UEDCTLB,NotIf(%nv%editor%)=() then SetEqual(o=%NV%EDITOR%) Goto(MSGREADSEARCH) endif *CL SetEqual(/nveditor=) ;IF (&S)=(1) THEN JUMP (SCR1) ;IF (&S)=(2) THEN JUMP (SCR2) ;IF (&S)=(3) THEN JUMP (SCR3) *Clear2 AnsiGoto(34,18); Say(&0&Next User*) AnsiGoto(32,19); Say(Previous User*) AnsiGoto(33,20); Say(Edit User*) AnsiGoto(31,21); Say(Search For User*) AnsiGoto(29,22); Say(Quit to Sysop Menu*) AnsiGoto(3,19); Say([UP] = Move Up*) AnsiGoto(3,20); Say([DN] = Move Down*) AnsiGoto(53,18); Say([RT] = Next Screen*) AnsiGoto(53,19) Say([LT] = Previous Screen*) AnsiGoto(53,21) Say(F = First User*) AnsiGoto(53,22) Say(L = Last User*) AnsiGoto(3,21) Say((ENTER) Selects*) If(%VAR%S)=(4) then Goto(Search) *GI AnsiGoto(23,20); MenuAsk(&15&Enter Item # to Edit (0=Quit): &14&*) Number(%RESP%) ;IfNotTrue(Goto(Clear2)) IfNotTrue(Return) If(%RESP%)=(0) then Return Goto(CI) ;SAY([Q]uit, [S]earch, [N]ext, [P]rev, [#] User #, [A]dd, [+] Next Page&CR&) ;MENUASK(%NOCR% (User %VAR%Y/%VAR%G)? *) ;BIGIF(Q:QUIT,S:SEARCH,N:NEXT,P:PREV,#:NU,A:ADD,+:NP) ;NUMBER(%RESP%) ;IFTRUE(GOTO (CI)) ;IF (&Z)=(0) THEN GOTO (CL) ;ANSIGOTO(1,21) ;GOTO (GI) *NP INC(S) IF (&S)=(4) THEN SETEQUAL(S=1) GOTO (CL) *CI SETEQUAL(C=1) AnsiGoto(23,20); Say(&0&Enter Item # to Edit (0=Quit): %RESP%) If(&L)=(1) then CmpVal(%RESP%,31) If(&L)=(2) then CmpVal(%RESP%,29) If(&L)=(3) then CmpVal(%RESP%,52) If(&L)=(4) then CmpVal(%RESP%,51) IfNotTrue(Goto(InvSel)) AnsiGoto(23,20) SETEQUAL(Q=%RESP%) ASK(&15&New Value? &14&*) ;CMPVALO(38,%VAR%Q) ;IFTRUE(GOTO (NP1)) ;Goto(Page%VAR%L) If(&L)=(1) then Goto(Page1) If(&L)=(2) then Goto(Page2) If(&L)=(3) then Goto(Page3) If(&L)=(4) then Goto(Page4) *Page1 CmpVal(%VAR%Q,31) IfNotTrue(Goto(CI)) IF (%var%q)=(1) THEN SetEqual(\NAME=%RESP%) IF (%var%q)=(2) THEN SetEqual(\ALIAS=%RESP%) IF (%var%q)=(3) THEN SetEqual(\COMPANY=%RESP%) IF (%var%q)=(4) THEN SetEqual(\TITLE=%RESP%) IF (%var%q)=(5) THEN SetEqual(\MHSNAME=%RESP%) IF (%var%q)=(6) THEN SetEqual(\STREET1=%RESP%) IF (%var%q)=(7) THEN SetEqual(\STREET=%RESP%) IF (%var%q)=(8) THEN SetEqual(\FROM=%RESP%) IF (%var%q)=(9) THEN SetEqual(\ZIP=%RESP%) IF (%var%q)=(10) THEN SetEqual(\COUNTRY=%RESP%) IF (%var%q)=(11) THEN SetEqual(\PHONE=%RESP%) IF (%var%q)=(12) THEN SetEqual(\WORK=%RESP%) IF (%var%q)=(13) THEN SetEqual(\BIRTH=%RESP%) IF (%var%q)=(14) THEN SetEqual(\PASS=%RESP%) IF (%var%q)=(15) THEN SetEqual(\LASTT=%RESP%) IF (%var%q)=(16) THEN SetEqual(\UPLOADS=%RESP%) IF (%var%q)=(17) THEN SetEqual(\DOWNLOADS=%RESP%) IF (%var%q)=(18) THEN SetEqual(\LASTDOWN=%RESP%) IF (%var%q)=(19) THEN SetEqual(\LASTUP=%RESP%) IF (%var%q)=(20) THEN SetEqual(\LASTMSG=%RESP%) IF (%var%q)=(21) THEN SetEqual(\SEC=%RESP%) IF (%var%q)=(22) THEN SetEqual(\KDOWN=%RESP%) IF (%var%q)=(23) THEN SetEqual(\KUP=%RESP%) IF (%var%q)=(24) THEN SetEqual(\GRAPHICS=%RESP%) IF (%var%q)=(25) THEN SetEqual(\SCREENLEN=%RESP%) IF (%var%q)=(26) THEN SetEqual(\BYTESTODAY=%RESP%) IF (%var%q)=(27) THEN SetEqual(\MINSU=%RESP%) IF (%var%q)=(28) THEN SetEqual(\DROPPED=%RESP%) IF (%var%q)=(29) THEN SetEqual(\CHATREQ=%RESP%) IF (%var%q)=(30) THEN SetEqual(\CUTOFF=%RESP%) Jump(CKSave) Return *Page2 CmpVal(%VAR%Q,29) IfNotTrue(Goto(CI)) IF (%var%q)=(1) THEN SetEqual(\LAST=%RESP%) IF (%var%q)=(2) THEN SetEqual(\LEFT=%RESP%) IF (%var%q)=(3) THEN SetEqual(\TIMESON=%RESP%) IF (%var%q)=(4) THEN SetEqual(\FIRST=%RESP%) IF (%var%q)=(5) THEN SetEqual(\MEMO=%RESP%) IF (%var%q)=(6) THEN SetEqual(\MEMO2=%RESP%) IF (%var%q)=(7) THEN SetEqual(\MEMO3=%RESP%) IF (%var%q)=(8) THEN SetEqual(\MEMO4=%RESP%) IF (%var%q)=(9) THEN SetEqual(\MEMO5=%RESP%) IF (%var%q)=(10) THEN SetEqual(\MEMO6=%RESP%) IF (%var%q)=(11) THEN SetEqual(\INT1=%RESP%) IF (%var%q)=(12) THEN SetEqual(\INT2=%RESP%) IF (%var%q)=(13) THEN SetEqual(\INT3=%RESP%) IF (%var%q)=(14) THEN SetEqual(\INT4=%RESP%) IF (%var%q)=(15) THEN SetEqual(\INT5=%RESP%) IF (%var%q)=(16) THEN SetEqual(\PROTOCOL=%RESP%) IF (%var%q)=(17) THEN SetEqual(\NEWCHECK=%RESP%) IF (%var%q)=(18) THEN SetEqual(\DOORS=%RESP%) IF (%var%q)=(19) THEN SetEqual(\SUBBAL=%RESP%) IF (%var%q)=(20) THEN SetEqual(\SUB=%RESP%) IF (%var%q)=(21) THEN SetEqual(\TL=%RESP%) IF (%var%q)=(22) THEN SetEqual(\FRATIO=%RESP%) IF (%var%q)=(23) THEN SetEqual(\DAILYDL=%RESP%) IF (%var%q)=(24) THEN SetEqual(\DAILYUL=%RESP%) IF (%var%q)=(25) THEN SetEqual(\NBAL=%RESP%) IF (%var%q)=(26) THEN SetEqual(\COMP=%RESP%) IF (%var%q)=(27) THEN SetEqual(\WAIT=%RESP%) If (%var%q)=(28) THEN SetEqual(\LO=%RESP%) Jump(CKSave) Return *Page3 CmpVal(%VAR%Q,52) IfNotTrue(Goto(CI)) IF (%var%q)=(1) THEN SetEqual(\INT6=%RESP%) IF (%var%q)=(2) THEN SetEqual(\CHR1=%RESP%) IF (%var%q)=(3) THEN SetEqual(\CHR2=%RESP%) IF (%var%q)=(4) THEN SetEqual(\CHR3=%RESP%) IF (%var%q)=(5) THEN SetEqual(\MSENT=%RESP%) IF (%var%q)=(6) THEN SetEqual(\SUBDATE=%RESP%) IF (%var%q)=(7) THEN SetEqual(\EXPTO=%RESP%) IF (%var%q)=(8) THEN SetEqual(\EXPSEC=%RESP%) IF (%var%q)=(9) THEN SetEqual(\EXPERT=%RESP%) IF (%var%q)=(10) THEN SetEqual(\DEFAVAIL=%RESP%) McAvail(%RESP%) Endif IF (%var%q)=(11) THEN SetEqual(\PSYS=%RESP%) IF (%var%q)=(12) THEN SetEqual(\ITIME=%RESP%) IF (%var%q)=(13) THEN SetEqual(\ANSMUSIC=%RESP%) IF (%var%q)=(14) THEN SetEqual(\FLAG01=%RESP%) IF (%var%q)=(15) THEN SetEqual(\FLAG02=%RESP%) IF (%var%q)=(16) THEN SetEqual(\FLAG03=%RESP%) IF (%var%q)=(17) THEN SetEqual(\FLAG04=%RESP%) IF (%var%q)=(18) THEN SetEqual(\FLAG05=%RESP%) IF (%var%q)=(19) THEN SetEqual(\FLAG06=%RESP%) IF (%var%q)=(20) THEN SetEqual(\FLAG07=%RESP%) IF (%var%q)=(21) THEN SetEqual(\FLAG08=%RESP%) IF (%var%q)=(22) THEN SetEqual(\FLAG09=%RESP%) IF (%var%q)=(23) THEN SetEqual(\FLAG10=%RESP%) IF (%var%q)=(24) THEN SetEqual(\FLAG11=%RESP%) IF (%var%q)=(25) THEN SetEqual(\FLAG12=%RESP%) IF (%var%q)=(26) THEN SetEqual(\FLAG13=%RESP%) IF (%var%q)=(27) THEN SetEqual(\FLAG14=%RESP%) IF (%var%q)=(28) THEN SetEqual(\FLAG15=%RESP%) IF (%var%q)=(29) THEN SetEqual(\FLAG16=%RESP%) IF (%var%q)=(30) THEN SetEqual(\FLAG17=%RESP%) IF (%var%q)=(31) THEN SetEqual(\FLAG18=%RESP%) IF (%var%q)=(32) THEN SetEqual(\FLAG19=%RESP%) IF (%var%q)=(33) THEN SetEqual(\FLAG20=%RESP%) IF (%var%q)=(34) THEN SetEqual(\FLAG21=%RESP%) IF (%var%q)=(35) THEN SetEqual(\FLAG22=%RESP%) IF (%var%q)=(36) THEN SetEqual(\FLAG23=%RESP%) IF (%var%q)=(37) THEN SetEqual(\FLAG24=%RESP%) IF (%var%q)=(38) THEN SetEqual(\FLAG25=%RESP%) IF (%var%q)=(39) THEN SetEqual(\FLAG26=%RESP%) IF (%var%q)=(40) THEN SetEqual(\FLAG27=%RESP%) IF (%var%q)=(41) THEN SetEqual(\FLAG28=%RESP%) IF (%var%q)=(42) THEN SetEqual(\FLAG29=%RESP%) IF (%var%q)=(43) THEN SetEqual(\FLAG30=%RESP%) IF (%var%q)=(44) THEN SetEqual(\FLAG31=%RESP%) IF (%var%q)=(45) THEN SetEqual(\FLAG32=%RESP%) IF (%var%q)=(46) THEN SetEqual(\FLAG33=%RESP%) IF (%var%q)=(47) THEN SetEqual(\FLAG34=%RESP%) IF (%var%q)=(48) THEN SetEqual(\FLAG35=%RESP%) IF (%var%q)=(49) THEN SetEqual(\FLAG36=%RESP%) IF (%var%q)=(50) THEN SetEqual(\FLAG37=%RESP%) IF (%var%q)=(51) THEN SetEqual(\FLAG38=%RESP%) Jump(CKSave) Return *Page4 CmpVal(%VAR%Q,51) IfNotTrue(Goto(CI)) IF (%var%q)=(1) THEN SetEqual(\FLAG39=%RESP%) IF (%var%q)=(2) THEN SetEqual(\FLAG40=%RESP%) IF (%var%q)=(3) THEN SetEqual(\FLAG41=%RESP%) IF (%var%q)=(4) THEN SetEqual(\FLAG42=%RESP%) IF (%var%q)=(5) THEN SetEqual(\FLAG43=%RESP%) IF (%var%q)=(6) THEN SetEqual(\FLAG44=%RESP%) IF (%var%q)=(7) THEN SetEqual(\FLAG45=%RESP%) IF (%var%q)=(8) THEN SetEqual(\FLAG46=%RESP%) IF (%var%q)=(9) THEN SetEqual(\FLAG47=%RESP%) IF (%var%q)=(10) THEN SetEqual(\FLAG48=%RESP%) IF (%var%q)=(11) THEN SetEqual(\FLAG49=%RESP%) IF (%var%q)=(12) THEN SetEqual(\FLAG50=%RESP%) IF (%var%q)=(13) THEN SetEqual(\FLAG51=%RESP%) IF (%var%q)=(14) THEN SetEqual(\FLAG52=%RESP%) IF (%var%q)=(15) THEN SetEqual(\FLAG53=%RESP%) IF (%var%q)=(16) THEN SetEqual(\FLAG54=%RESP%) IF (%var%q)=(17) THEN SetEqual(\FLAG55=%RESP%) IF (%var%q)=(18) THEN SetEqual(\FLAG56=%RESP%) IF (%var%q)=(19) THEN SetEqual(\FLAG57=%RESP%) IF (%var%q)=(20) THEN SetEqual(\FLAG58=%RESP%) IF (%var%q)=(21) THEN SetEqual(\FLAG59=%RESP%) IF (%var%q)=(22) THEN SetEqual(\FLAG60=%RESP%) IF (%var%q)=(23) THEN SetEqual(\FLAG61=%RESP%) IF (%var%q)=(24) THEN SetEqual(\FLAG62=%RESP%) IF (%var%q)=(25) THEN SetEqual(\FLAG63=%RESP%) IF (%var%q)=(26) THEN SetEqual(\FLAG64=%RESP%) IF (%var%q)=(27) THEN SetEqual(\FLAG65=%RESP%) IF (%var%q)=(28) THEN SetEqual(\FLAG66=%RESP%) IF (%var%q)=(29) THEN SetEqual(\FLAG67=%RESP%) IF (%var%q)=(30) THEN SetEqual(\FLAG68=%RESP%) IF (%var%q)=(31) THEN SetEqual(\FLAG69=%RESP%) IF (%var%q)=(32) THEN SetEqual(\FLAG70=%RESP%) IF (%var%q)=(33) THEN SetEqual(\FLAG71=%RESP%) IF (%var%q)=(34) THEN SetEqual(\FLAG72=%RESP%) IF (%var%q)=(35) THEN SetEqual(\FLAG73=%RESP%) IF (%var%q)=(36) THEN SetEqual(\FLAG74=%RESP%) IF (%var%q)=(37) THEN SetEqual(\FLAG75=%RESP%) IF (%var%q)=(38) THEN SetEqual(\FLAG76=%RESP%) IF (%var%q)=(39) THEN SetEqual(\FLAG77=%RESP%) IF (%var%q)=(40) THEN SetEqual(\FLAG78=%RESP%) IF (%var%q)=(41) THEN SetEqual(\FLAG79=%RESP%) IF (%var%q)=(42) THEN SetEqual(\FLAG80=%RESP%) IF (%var%q)=(43) THEN SetEqual(\FLAG81=%RESP%) IF (%var%q)=(44) THEN SetEqual(\FLAG82=%RESP%) IF (%var%q)=(45) THEN SetEqual(\FLAG83=%RESP%) IF (%var%q)=(46) THEN SetEqual(\FLAG84=%RESP%) IF (%var%q)=(47) THEN SetEqual(\FLAG85=%RESP%) IF (%var%q)=(48) THEN SetEqual(\FLAG86=%RESP%) IF (%var%q)=(49) THEN SetEqual(\FLAG87=%RESP%) Jump(CKSave) Return *ADD SETEQUAL(C=1) INC(G) SETEQUAL(Y=%VAR%G) GOTO (DOUSER) *NU JUMP (CKSAVE) ASK(User Number?*) SETEQUAL(Y=%RESP%) GOTO (DOUSER) *NEXT JUMP (CKSAVE) INC(Y) GOTO (DOUSER) *PREV JUMP (CKSAVE) ADDVAR(%VAR%Y+-1=Y) GOTO (DOUSER) *SEARCH JUMP (CKSAVE) AnsiGoto(30,20) Say(&0&Save Changes? Yes*) AnsiGoto(20,20) MENUASK(&15&Search Text? &14&*) SetEqual(o=%RESP%) addvar(%var%y+1=i) seekuserp(%var%o,%var%i) SetEqual(o=) if (%aresp%)=(No) then goto(ex) Goto(MoreOfSearch) *MSGREADSEARCH SeekUser(%VAR%O) SetEqual(o=) SetNv(editor=) NotIf(%ARESP%)=(Yes) then Goto(NoRec) *MOREOFSEARCH setequal(y=%ndnumb%) *EX RETURN ;GOTO (DOUSER) *QUIT JUMP (CKSAVE) RETURN *CKSAVE AnsiGoto(34,18); Say(&0&Next User*) AnsiGoto(32,19); Say(Previous User*) AnsiGoto(23,20); ;AnsiGoto(33,20); ;Say(Edit User*) Say( *) AnsiGoto(31,21); Say(Search For User*) AnsiGoto(29,22); Say(Quit to Sysop Menu*) AnsiGoto(3,19); Say([UP] = Move Up*) AnsiGoto(3,20); Say([DN] = Move Down*) AnsiGoto(53,18); Say([RT] = Next Screen*) AnsiGoto(53,19) Say([LT] = Previous Screen*) AnsiGoto(53,21) Say(F = First User*) AnsiGoto(53,22) Say(L = Last User*) AnsiGoto(3,21) Say((ENTER) Selects*) NOTIF (&C)=(1) THEN RET AnsiGoto(30,20) yesnoask(&15&Save Changes? &14&*) if (%RESP%)=(Yes) THEN SAVEUSER(%VAR%Y) SetEqual(c=0) endif RET *InvSel ; AnsiGoto(23,20); ; Say(&0&Enter Item # to Edit (0=Quit): %RESP%) AnsiGoto(29,20) Say(&12&Invalid Selection!*) SecPause(2) AnsiGoto(29,20) Say(&0&Invalid Selection!*) Goto(GI) *NoRec Say(&CR&&12&Could not locate user record!&CR&) SetEqual(/nveditor=) SetEqual(o=) SecPause(1) Return ENTERATTCTL¥SetEqual(/nvattlimit=200) ;limits PB to 200 attaches of same filename. SetNv(fntemp=) ; needs to be empty to indicate no path in filename Say(&14&Calculating free storage space...*) ;ClearMem FreeSpace(%CDRIVE%:) setequal(l=%aresp%) CmpVal(%ARESP%,%MINSPACE%) IfTrue (Goto (notenufs)) eline(38) *pickprot if (%baud%)=(LOCAL) then goto (pok) Display (display\upPROTS1) Say(&14&Press [ENTER] to quit&CR&) MenuAsk (%CRON%&15&Which transfer protocol would you like to use?&12&: &14&*) If (%RESP%)=(Q) Then Return If (%RESP%)=(<CR>) then Return Len(%RESP%) NotIf (%ARESP%)=(1) Then Goto (Pprob) Seek(protocol\%RESP%-AU.BT) IfTrue (Goto (Pok)) *pprob loadsub(control\macros\badsel.ctl) Goto (pickprot) *Pok addcomma(%var%l) Say(&CR&&11&%ARESP% &15&bytes free.) SetEqual(r=%RESP%) cMenuAsk (&CR&&15&Please enter the name of the file to attach&12&:&14& *) If (%RESP%)=() Then Return SetEqual(x=%RESP%) find(&x,.) if (%aresp%)=(0) then setequal(x=%resp%.) setequal(/resp=%var%x) If(%LOCAL%)=(TRUE) then Goto(ChkPath) *WeBeBack SetEqual(/nvATTFNAME=%RESP%) Jump(DeleteExtension) Jump(ChooseExtension) setequal(d=%resp%) ;Seek(%ATTPAT%%var%x) ;IfTrue (Goto (alreadyhere)) *TryAgain If (%BAUD%)=(LOCAL) Then Goto (locul) Say(&CR&&11&We're ready to receive the file. Please start sending now.) FixFile(protocol\%var%r-au.bt,%pbtemp%%var%r-au.bat) Exec(%pbtemp%%var%r-au.BAT│) Goto (success) *locul If(%NV%FNTEMP%)<>() then SetEqual(/RESP=%NV%FNTEMP%) Goto(DoCopy) endif MenuAsk (&15&Please enter the path for this file&12&: &14&*) *DoCopy fCopy(%RESP%\%NV%ATTFNAME%,%ATTPAT%%NV%ATTACH%.%NV%ATTEXT%) SetNv(fntemp=) notif (%ARESP%)=(0) then goto (pok) *success If (%ARESP%)<>(0) Then Goto (aborted) ;loadsub(zc\zc2.ctl) if (&y)=(2) then goto (aborted) Log(--,Attach uploaded: %nv%attfname%. Saved as %nv%attach%.%nv%attext%) SetEqual(x=) ; reset attach filename Display(display\attsucc) return *chkpath SetNv(fntemp=) *Chkpath1 Find(&x,:) If(%ARESP%)=(2) then Get(&x,1,2) SetNv(fntemp=%ARESP%) Len(%VAR%X) AddVar(%ARESP%+-2=o) Get(&x,3,%VAR%O) SetEqual(x=%ARESP%) endif *chkpath2 Find(&x,\) ; see if they put a path in with the filename SetEqual(o=%ARESP%) If(%ARESP%)<>(0) then Get(&x,1,%VAR%O) SetNv(fntemp=%NV%FNTEMP%%ARESP%) Len(%VAR%X) AddVar(%ARESP%+-o=p) Inc(o) Get(&x,%VAR%O,%VAR%P) SetEqual(x=%ARESP%) Goto(ChkPath2) ; checks for multiple backslashes endif If(%NV%FNTEMP%)<>() then Len(%NV%FNTEMP%) SetEqual(o=%ARESP%) Get(%NV%FNTEMP%,%ARESP%,1) If(%ARESP%)=(\) then Dec(o) Get(%NV%FNTEMP%,1,%VAR%O) SetNv(fntemp=%ARESP%) endif endif SetEqual(/RESP=%VAR%X) Goto(WeBeBack) *notenufs display(display\nospce) Return *aborted setnv(attach1=%nv%attach%) setnv(attach=) setnv(attext1=%nv%attext%) setnv(attext=) setnv(attfname1=%nv%attfname%) setnv(attfname=) FlushOut Log(--,Attach upload aborted (%nv%attfname%)) secpause(2) enter Display(display\attabt) Say(&CR&&15&Would you like to try to upload the attach again? (&12&Y&15&/&12&N&15&)&14&*) Back(4) YesNoAsk(*) If(%RESP%)=(No) then SetEqual(x=) Return endif Kill(%ATTPAT%%NV%ATTACH%.%NV%ATTEXT%) ;Kill file in case the partial upload was saved setnv(attach=%nv%attach1%) setnv(attach1=) setnv(attext=%nv%attext1%) setnv(attext1=) setnv(attfname=%nv%attfname1%) setnv(attfname1=) Goto(TryAgain) *alreadyhere Display (display\HERENOW) Goto (pok) *DeleteExtension Find(%NV%ATTFNAME%,.) If(%ARESP%)=(0) then SetEqual(/nvattach=%NV%FULL%) Ret endif AddVar(%ARESP%+-1=x) Get(%NV%ATTFNAME%,1,%VAR%X) SetEqual(x=%NV%ATTFNAME%) SetEqual(/nvattach=%ARESP%) Ret *ChooseExtension SetEqual(x=0) *CheckExt Seek(%ATTPAT%%NV%ATTACH%.%VAR%X) IfNotTrue(Goto(SetExt)) Inc(x) If(&x)>=(%NV%ATTLIMIT%) then Goto(ChooseDiffName) Goto(CheckExt) *SetExt SetEqual(/nvattext=%VAR%X) ;SetEqual(x=%NV%ATTFNAME%) SetEqual(x=%NV%ATTACH%.%NV%ATTEXT%) ;set x to the actual stored filename, not the user-given one. Ret *ChooseDiffName Say(&CR&&12&That filename is currently unavailable. Please choose another.) Goto(Pok) CCTLp#;To Install the Call Back Verifier: ; ; 1. Copy c.ctl to your CONTROL\ directory. ; 2. Edit Open.ctl. Put the following line in the file after this line: ; If (%ARESP%)=(ALREADY ON) then Goto (alreadyon) ; Insert the following line: ; If (/:sec/)=(10) then loadsub(control\c.ctl) setnv(wipE=) loadsub(control\exitwip.ctl) ; If you would like to block out certain phone numbers, create a file calledi ;badnumbs.bbs in the main bbs directory. the format for the file: ;start#to_compare,number_#'s_to_compare,numbers ; ;for example, the following file would block out 911, 976 and 900 calls: ; ;1,3,900 ;5,3,976 ;5,3,911 setnv(bbscon=Y) ;connect user to BBS after callback? setnv(prefix=ATDP) ;dial prefix setnv(passtries=4) ;number of retries allowed for password entry setnv(newtime=30) ;# of minutes to set time left to after callback setnv(upgsec=20) ;security level to upgrade to setnv(LongDist=Y) ;allow long distance callers? setnv(init=ATE1V1M1) ;modem initialize string setnv(CallTimes=2) ;# times to try calling setnv(dtrtime=5) ;# seconds to leave DTR low for disconnect setnv(DialWait=45) ;# seconds to wait between redials setnv(DialTries=3) ;# times to redial on no pickup setnv(CT=60) ;# times to wait for connect CarrierL (Y) Jump (INITSETUP) say(&CR&Welcome to the Call back verifier at %BBS%!) *calln say(&CR&We have two phone numbers on file for you.&CR&) say( 1. /:PHONE/) say( 2. /:WORK/) say( 3. Alternate Number&CR&) setequal(b=) menuask(At which number can we call you? *) notif (%RESP%)=(3) then goto (n3) say(&CR&Please enter the alternate phone number:) picture(###-###-####) setequal(b=%resp%) *n3 if (%resp%)=(1) then setequal(b=/:phone/) if (%resp%)=(2) then setequal(b=/:work/) if (%var%b)=() then goto (calln) say(&CR&We're prepared to call you at %var%b.&CR&) menuask((C)ontinue with callback? or (Q)uit? *) notif (%resp%)=(C) then goto (nogo) setnv(ld=N) yesnoask(&CR&Is this a long-distance number from this BBS? *) if (%resp%)=(Yes) then setnv(ld=Y) if (%resp%)=(Yes) then if (%nv%longdist%)=(N) then goto (nogo) setequal(c=1) if (%resp%)=(No) then setequal(c=5) seek(badnumbs.bbs) ifNotTrue(goto(passbnck)) inpopen(badnumbs.bbs) do fendif(passBNCK) inpread setnv(D=%aresp%) setequal(q=%aresp%) get(&q,1,3) setnv(W=%aresp%) setequal(q=%nv%d%) get(&q,5,20) setnv(N=%aresp%) get(&b,%nv%W%) if (%aresp%)=(%nv%n%) then goto (badn) loop *badn say(&CR&&3&That is an unacceptable phone number.&CR&) inpclose goto (nogo) *passBNCK inpclose setequal(d=%var%b) get(&b,%var%c,20) setequal(b=%aresp%) say(&CR&We're ready to call you at %var%b.&CR&) yesnoask(Continue with callback? *) if (%resp%)=(No) then goto (calln) seekfile(calls.dat,%var%d) iftrue(goto(ahere)) say() clearscr say(&CR&&CR&Please hang up your modem now. We will call you back by modem.) say(&CR&When you hear the phone ring or see "RING" on your screen, type) say(&CR&ATA&CR&) say(then press ENTER or RETURN to answer the call.) say(&CR&) write(Pausing for 3 seconds...) secpause(3) writeln(Done!) setequal(z=-1) *dd inc(z) if (%var%z)=>(%nv%dtrtime%) then goto (nogo0) secpause(1) dtr(0) ccarrier if (%ARESP%)=(-1) then goto (dd) dtr(-1) *NOCARRIER writeln() write(Waiting three seconds before attempting callback ) secpause(1) write(. ) secpause(1) write(. ) secpause(1) writeln(.) writeln() jump (disptxt) say(%nv%init%) setequal(a=%var%b) setequal(z=-1) *cb inc(z) if (%var%z)=>(%nv%calltimes%) then goto (nogo0) ccarrier if (%ARESP%)=(-1) then goto (ison) jump (disptxt) writeln(Calling user back. Press any key to abort.) localkey(60) iftrue(quitbbs) say(%nv%prefix%%var%a|) write(Dialed %var%a, waiting for a response from modem . . . ) setequal(s=%wtime%) setequal(t=%wtime%) setequal(u=0) *watdt setequal(t=%wtime%) if (%var%s)=(%var%t) then goto (isEq) setequal(s=%wtime%) setequal(t=%var%s) inc(u) if (%var%u)<=(%nv%dialwait%) then goto (isEq) inc(v) if (%var%v)=>(%nv%dialTries%) then quitbbs flushout goto(nocarrier) *isEq localkey(60) iftrue(quitbbs) comlineinput(2) ccarrier if (%ARESP%)=(-1) then goto (ison) if (%RESP%)=(%nv%prefix%%var%a) then goto (watdt) if (%RESP%)=() then goto (watdt) if (%RESP%)=(BUSY) then goto (cb0) if (%RESP%)=(NO CARRIER) then goto (cb0) ascii if (%RESP%)=(13) then goto (watdt) if (%RESP%)=(10) then goto (watdt) if (%RESP%)=(32) then goto (watdt) if (%RESP%)=(0) then goto (watdt) setequal(y=0) *wconnect inc(y) if (%var%y)>(%nv%ct%) then quitbbs localkey(60) iftrue(quitbbs) ccarrier if (%ARESP%)=(-1) then goto (ison) comlineinput(30) localkey(60) iftrue(quitbbs) ccarrier if (%ARESP%)=(-1) then goto (ison) if (%RESP%)=(BUSY) then goto (cb0) if (%RESP%)=(NO CARRIER) then goto (cb0) if (%RESP%)=(RINGING) then goto (watdt) if (%RESP%)=(RING) then goto (watdt) if (%RESP%)=() then goto (wconnect) ascii if (%RESP%)=(13) then goto (watdt) if (%RESP%)=(10) then goto (watdt) if (%RESP%)=(32) then goto (watdt) if (%RESP%)=(0) then goto (watdt) localkey(60) iftrue(quitbbs) ccarrier if (%ARESP%)=(-1) then goto (ison) goto (wconnect) *ison writeln() write(CONNECT to user's computer. Waiting 5 seconds ) secpause(1) flushout write(. ) secpause(1) write(. ) secpause(3) writeln(. Announcing connect to user.) flushout say() say(This is %BBS% calling for %NAME%!) say() flushout setequal(z=-1) *tragain inc(z) if (%var%z)=>(%nv%passtries%) then goto (badp) say(Please enter your password now.) cgetpass(*) notif (%resp%)=(/:PASS/) then goto (tragain) say(Correct! Welcome to %BBS%!) setnv(D=) setnv(N=) setnv(W=) setnv(LD=) setequal(/sec=%nv%upgsec%) setequal(/left=%nv%newtime%) appendto(calls.dat,%var%d) if (%nv%bbscon%)=(N) then goto (nocon) if (%nv%wipe%)=() then loadmem(control\open.ctl,goto (secshow)) setnv(wipe=) setnv(wipmode=1) loadmem(control\open.ctl,goto(secshow)) restcarrier *SUBSCRIBER DateOK(/:SUBDATE/) IfNotTrue (goto (SECSHOW)) CmpDate(%DATE%,/:SUBDATE/) IfNotTrue(goto (SOK)) Display (display\SEXP/:SEC/) InpOpen (sub.bbs) *STRSUB fEndIF(secshow) InpRead SetEqual(b=%ARESP%) SetEqual(a=%ARESP%) Len(%VAR%B) If (%ARESP%)=(0) then Goto (STRSUB) Get(&A,1,1) If (%ARESP%)=(;) then Goto (STRSUB) fcomma(b) Find(%VAR%B, ) If (%ARESP%)=(0) then Goto (STRSUB) SetEqual(a=%VAR%B) SetEqual(c=%ARESP%) AddVar(&c+-1=c) Get(&A,1,%VAR%C) NotIF (%ARESP%)=(/:SEC/) then Goto (STRSUB) AddVar(&C+2=c) Get(&B,%VAR%c,10) SetEqual (/SEC=%ARESP%) SetEqual (/SUB=N) Log(--,User's subscription expired.) Goto (SECSHOW) *SOK Display(display\SUB/:SEC/) Enter Goto (SECSHOW) *ALREADYON Display(display\ALREADY) Log(<<,User already on other node!) QuitBBS *SYSOP DefPause ($7$&0&[Send more text?]$0$&3& (&11&S&3&)top, (&11&N&3&)onstop or (&11&C&3&)ontinue?&12&: &7&) DefPif (s:stop,n:nonstop) Kill (cnodes.%NODE%,inodes.%NODE%,tagged.%NODE%,tagged2.%NODE%) SetActivity (SYSOP Logon) Setequal(/Graphics=ANSI) setequal(/lastmsg=1) selarea(1) listfile(areas\farea1) UserLogin(1,SYSTEM OPERATOR Logged On Locally) Log (->,Call %CALLERS%, %GRAPHICS%, Last: /:LAST/) Goto (SECSHOW) *SYSSEC If (%SYSP%)=() then Goto (CONCLR) Say(&3&Sysop Password?&12&: &15&*) MenuEqual(a=%SYSP%) cGetPass(*) If (%RESP%)=(&a) then goto (CONCLR) Log(!!,Incorrect Sysop Pass (%RESP%)) Say(&12&Incorrect Attempt!) QuitBBS *NOCHK Say(You haven't checked for new files in our file area yet!) Goto (BAKN) *INITSETUP Defpause ($7$&0&[Send more text?]$0$&3& (&11&S&3&)top, (&11&N&3&)onstop or (&11&C&3&)ontinue?&12&: &7&) DefPif (s:stop,n:nonstop) if (%ON%)=(FROM DOOR) then goto (doorb) SetEqual (/sec=%NEWSEC%) SetEqual (/SCREENLEN=23) SetActivity (Logging On...) linefeed(1) %Clogin% Kill (cnodes.%NODE%,inodes.%NODE%,tagged.%NODE%,tagged2.%NODE%,psys.%node%) ret *disptxt comlineinput(3) writeln(%RESP%) *d comlineinput(1) writeln(%resp%) if(%ARESP%)=(0) then goto (d) ret *nogo say(Sorry, no access...&CR&) enter setnv(N=) setnv(W=) setnv(LD=) setnv(D=) goto (ret0) *nogo0 say(Sorry, no access...&CR&) quitbbs *ahere say(&CR&The phone number you entered is in our list of called numbers. Please) say(contact the Sysop if this is an error.&CR&) goto (nogo) *badp say(&CR&It appears you forgot your password. Please call back and contact the) say(Sysop if you can not remember it.) say() secpause(1) quitbbs *nocon say(Please call back to take advantage of your new access level. Thank you.&CR&) enter quitbbs *cb0 writeln() write(Waiting 3 seconds before calling user . . .) secpause(3) writeln(Done!) goto(cb) *ret0 if (%nv%wipe%)=() then return setnv(wipe=) setnv(wipmode=1) return *doorb if (%nv%wipe%)=() then loadmem(control\doorback.ctl) setnv(wipE=) setnv(wipmode=1) loadmem(control\doorback.ctl) SCR3CTL░ *SCR3 SETEQUAL(A=\:INT6\) SETLEN(A=5) SAY(&7&(&12&1&7&) Integer (6) &14&%VAR%A &7&(&12&9&7&) Expert Mode &14&\:EXPERT\) SETEQUAL(A=\:CHR1\) SETLEN(A=3) SAY(&7&(&12&2&7&) Char (1) &14&%VAR%A &7&(&12&10&7&) Multi Chat &14&\:DEFAVAIL\) SETEQUAL(A=\:CHR2\) SETLEN(A=3) SAY(&7&(&12&3&7&) Char (2) &14&%VAR%A &7&(&12&11&7&) Logon Page &14&\:PSYS\) SETEQUAL(A=\:CHR3\) SETLEN(A=3) SAY(&7&(&12&4&7&) Char (3) &14&%VAR%A &7&(&12&12&7&) No Time Limit &14&\:ITIME\) SETEQUAL(A=\:MSENT\) SETLEN(A=5) SAY(&7&(&12&5&7&) Msgs Entered &14&%VAR%A &7&(&12&13&7&) Ansi Music &14&\:ANSMUSIC\) SETEQUAL(A=\:SUBDATE\) SETLEN(A=10) SAY(&7&(&12&6&7&) Sub Exp &14&%VAR%A &7&(&12&14&7&) Flag 1 &14& \:FLAG01\) SETEQUAL(A=\:EXPTO\) SETLEN(A=5) SAY(&7&(&12&7&7&) Expire Sec &14&%VAR%A &7&(&12&15&7&) Flag 2 &14&\:FLAG02\) SETEQUAL(A=\:EXPSEC\) SETLEN(A=5) SAY(&7&(&12&8&7&) Prev Sec &14&%VAR%A &7&(&12&16&7&) Flag 3 &14&\:FLAG03\&CR&) AnsiGoto(22,9); Say(&3&-USER: [&15&\:NAME\&3&]-) SAY(&7&(&12&17&7&) &7&Flag 4 &14&\:FL04\ &7&(&12&24&7&) Flag 11 &14&\:FL11\ &7&(&12&31&7&) Flag 18 &14&\:FL18\ &7&(&12&38&7&) Flag 25 &14&\:FL25\ &7&(&12&45&7&) Flag 32 &14&\:FL32\) SAY(&7&(&12&18&7&) &7&Flag 5 &14&\:FL05\ &7&(&12&25&7&) Flag 12 &14&\:FL12\ &7&(&12&32&7&) Flag 19 &14&\:FL19\ &7&(&12&39&7&) Flag 26 &14&\:FL26\ &7&(&12&46&7&) Flag 33 &14&\:FL33\) SAY(&7&(&12&19&7&) &7&Flag 6 &14&\:FL06\ &7&(&12&26&7&) Flag 13 &14&\:FL13\ &7&(&12&33&7&) Flag 20 &14&\:FL20\ &7&(&12&40&7&) Flag 27 &14&\:FL27\ &7&(&12&47&7&) Flag 34 &14&\:FL34\) SAY(&7&(&12&20&7&) &7&Flag 7 &14&\:FL07\ &7&(&12&27&7&) Flag 14 &14&\:FL14\ &7&(&12&34&7&) Flag 21 &14&\:FL21\ &7&(&12&41&7&) Flag 28 &14&\:FL28\ &7&(&12&48&7&) Flag 35 &14&\:FL35\) SAY(&7&(&12&21&7&) &7&Flag 8 &14&\:FL08\ &7&(&12&28&7&) Flag 15 &14&\:FL15\ &7&(&12&35&7&) Flag 22 &14&\:FL22\ &7&(&12&42&7&) Flag 29 &14&\:FL29\ &7&(&12&49&7&) Flag 36 &14&\:FL36\) SAY(&7&(&12&22&7&) &7&Flag 9 &14&\:FL09\ &7&(&12&29&7&) Flag 16 &14&\:FL16\ &7&(&12&36&7&) Flag 23 &14&\:FL23\ &7&(&12&43&7&) Flag 30 &14&\:FL30\ &7&(&12&50&7&) Flag 37 &14&\:FL37\) SAY(&7&(&12&23&7&) &7&Flag 10 &14&\:FL10\ &7&(&12&30&7&) Flag 17 &14&\:FL17\ &7&(&12&37&7&) Flag 24 &14&\:FL24\ &7&(&12&44&7&) Flag 31 &14&\:FL31\ &7&(&12&51&7&) Flag 38 &14&\:FL38\) RETURN OVERLCTL⌡display(display\overl) secpause(1) say(Unregistered user 5 second delay *) secpause(1) say(. *) secpause(1) say(. *) secpause(1) say(. *) secpause(1) say(. *) secpause(1) say(.&CR&) enter clearscr loadmem(\doors\pbreg\pbreg.ctl) SCR1CTL▄*SCR1 AnsiGoto(1,2); GET(\:NAME\ ,1,25) SAY(&7&(&12&1&7&) User Name &14& %ARESP% &7&(&12&16&7&) Uploads &14&\:UPLOADS\) GET(\:ALIAS\ ,1,25) SAY(&7&(&12&2&7&) Alias &14& %ARESP% &7&(&12&17&7&) Downloads &14&\:DOWNLOADS\) SETEQUAL(A=\:COMPANY\) SETLEN(A=30) SAY(&7&(&12&3&7&) Company Name &14& %VAR%A &7&(&12&18&7&) Download Area &14&\:LASTDOWN\) GET(\:TITLE\ ,1,10) SAY(&7&(&12&4&7&) Title &14& %ARESP% &7&(&12&19&7&) Upload Area &14&\:LASTUP\) GET(\:MHSNAME\ ,1,8) SAY(&7&(&12&5&7&) MHS Name &14& %ARESP% &7&(&12&20&7&) Conference &14&\:LASTMSG\) SETEQUAL(A=\:STREET1\) SETLEN(A=30) SAY(&7&(&12&6&7&) Street (1/2) &14& %VAR%A &7&(&12&21&7&) Security &14&\:SEC\) SETEQUAL(A=\:STREET\) SETLEN(A=30) SAY(&7&(&12&7&7&) Street (2/2) &14& %VAR%A &7&(&12&22&7&) KB D/L'ed &14&\:KDOWN\) SETEQUAL(A=\:FROM\) SETLEN(A=30) SAY(&7&(&12&8&7&) City, ST &14& %VAR%A &7&(&12&23&7&) KB U/L'ed &14&\:KUP\) GET(\:ZIP\ ,1,10) SAY(&7&(&12&9&7&) Zip Code &14& %ARESP% &7&(&12&24&7&) Graphics &14&\:GRAPHICS\) SETEQUAL(A=\:COUNTRY\) SETLEN(A=30) SAY(&7&(&12&10&7&) Country &14& %VAR%A &7&(&12&25&7&) Screen Length &14&\:SCREENLEN\) GET(\:PHONE\ ,1,13) SAY(&7&(&12&11&7&) Phone (V) &14& %ARESP% &7&(&12&26&7&) Bytes Today &14&\:BYTESTODAY\) GET(\:WORK\ ,1,13) SAY(&7&(&12&12&7&) Phone (D) &14& %ARESP% &7&(&12&27&7&) Minutes Used &14&\:MINSU\) SAY(&7&(&12&13&7&) D.O.B. &14& \:BIRTH\ &7&(&12&28&7&) Carrier Drops &14&\:DROPPED\) SETEQUAL(A=\:PASS\) SETLEN(A=20) SAY(&7&(&12&14&7&) Password &14& %VAR%A &7&(&12&29&7&) Chat Requests &14&\:CHATREQ\) SAY(&7&(&12&15&7&) Last Time On &14& \:LASTT\ &7&(&12&30&7&) Cutoff Times &14&\:CUTOFF\) RETURN SCR2CTLª*SCR2 SAY(&7&(&12&1&7&) Last Date On &14&\:LAST\ &7&(&12&16&7&) Protocol &14&\:PROTOCOL\) GET(\:LEFT\ ,1,5) SAY(&7&(&12&2&7&) Time Left &14&%ARESP% &7&(&12&17&7&) New Scan &14&\:LASTCHK\) GET(\:TIMESON\ ,1,5) SAY(&7&(&12&3&7&) Times On &14&%ARESP% &7&(&12&18&7&) Doors Loaded &14&\:DOORSE\) SAY(&7&(&12&4&7&) First Call &14&\:FIRST\&CR&) AnsiGoto(41,5); Say(&3&-USER: [&15&\:NAME\&3&]-) setequal(a=\:MEMO\) setlen(a=40) SAY(&7&(&12&5&7&) Memo (1) &14&%VAR%A) ;SAY(&7&(5) Memo (1) &14&%VAR%A &7&[&15&\:NAME\&7&]) SETEQUAL(A=\:MEMO2\) SETLEN(A=20) SAY(&7&(&12&6&7&) Memo (2) &14&%VAR%A &7&(&12&19&7&) Sub. Balance &14&\:SUBBAL\) SETEQUAL(A=\:MEMO3\) SETLEN(A=20) SAY(&7&(&12&7&7&) Memo (3) &14&%VAR%A &7&(&12&20&7&) Subscriber? &14&\:SUB\) SETEQUAL(A=\:MEMO4\) SETLEN(a=20) SAY(&7&(&12&8&7&) Memo (4) &14&%VAR%A &7&(&12&21&7&) Time Limit &14&\:TL\) SETEQUAL(A=\:MEMO5\) SETLEN(A=20) SAY(&7&(&12&9&7&) Memo (5) &14&%VAR%A &7&(&12&22&7&) File Ratio &14&\:FRATIO\) SETEQUAL(A=\:MEMO6\) SETLEN(A=20) SAY(&7&(&12&10&7&) Memo (6) &14&%VAR%A &7&(&12&23&7&) D/Ls Today &14&\:DAILYDL\) SETEQUAL(A=\:INT1\) SETLEN(A=5) SAY(&7&(&12&11&7&) Integer (1) &14&%VAR%A &7&(&12&24&7&) U/Ls Today &14&\:DAILYUL\) SETEQUAL(A=\:INT2\) SETLEN(A=5) SAY(&7&(&12&12&7&) Integer (2) &14&%VAR%A &7&(&12&25&7&) Netmail Bal. &14&\:NBAL\) SETEQUAL(A=\:INT3\) SETLEN(A=5) SAY(&7&(&12&13&7&) Integer (3) &14&%VAR%A &7&(&12&26&7&) Computer &14&\:COMP\) SETEQUAL(A=\:INT4\) SETLEN(A=5) SAY(&7&(&12&14&7&) Integer (4) &14&%VAR%A &7&(&12&27&7&) Mail Waiting? &14&\:WAIT\) SETEQUAL(A=\:INT5\) SETLEN(A=5) SAY(&7&(&12&15&7&) Integer (5) &14&%VAR%A &7&(&12&28&7&) Locked Out? &14&\:LO\) RETURN ALREADYCTL═ Log(<<,User already on another node!) if (%nv%wipmode%)=(1) then goto (wipa) Display(display\ALREADY) secpause(2) QuitBBS *wipa setequal(c=13~Your account is already logged in on another node. You are allow to use only one node at a time.~Already Online~0~) jump (wipc) secpause(3) quitbbs *GCHAR COMPRINT(%NV%TEXT%) SETEQUAL(A=0) DO COMKEY ASCII IF(%ARESP%)=(21) THEN GOTO(GCHAR) INC(A) IF(&B)=(-1) THEN IF (%RESP%)<>() THEN RET IF(%ARESP%)=(&B) THEN RET IF(&A)>(45) THEN RET IF(%RESP%)<>() THEN SETNV(PBACK=%NV%PBACK%%RESP%) DELAY18TH(2) LOOP *WIPC LOCALKEY(1) IFNOTTRUE(GOTO(NOLKEY)) SYSKEYCHECK SETEQUAL(/RESP=) SETEQUAL(/RESP=) *NOLKEY CCARRIER IF(%ARESP%)=(0) THEN GOTO (NOC0) CHECKSUM(%VAR%C) SETEQUAL(B=6) SETNV(TEXT=$%ARESP%%VAR%C%C%13%) SETNV(PBACK=) JUMP(GCHAR) IF(%ARESP%)<>(6) THEN JUMP(GCHAR) SETEQUAL(/IBUFF=%NV%PBACK%) LEN(%NV%PBACK%) SETEQUAL(/IBUFF0=%ARESP%) RET *NOC0 log(<<,Carrier lost.) quitbbs ON2CTLZ;Online Help Database ;Programmed for Powerboard World Support BBS ;Programmed by Doug Vermes, 12/29/93 *Disp SetActivity (Main Menu) ;if(/:EXPERT/)=(Y) then linefeed(1) ;if(/:EXPERT/)=(Y) then Goto (Prompt) *sdisp Display (onhelp\onhelp3) *Prompt SetEqual(a=) Say(&15&Time Remaining: &14&%LEFT% &15&minutes.) MenuAsk(&3&Online Help Selection or Keyword to Search For? &12&*) *Check Bigif (G:BYE,?:SDISP,Q:MAIN) ;Bigif (G:BYE,?:SDISP,Q:MAIN,1:REG,7:EVENT,8:FILES,13:MULTI,14:PBC,16:PWRMAIL,12:MISC,21:ZC,4:COMM,9:HARDWARE,19:SOFTWARE,11:MSGAREA,26:UPGRADEQS,6:DOORS,20:SPECIFIC) ;BELOW ARE FOR SUB-MENUS If(%RESP%)=(1) then SetEqual(n=ONREG) If(%RESP%)=(4) then SetEqual(n=ONCOMM) If(%RESP%)=(6) then SetEqual(n=ONDOORS) If(%RESP%)=(7) then SetEqual(n=ONEVENT) If(%RESP%)=(8) then SetEqual(n=ONFILE) If(%RESP%)=(9) then SetEqual(n=ONHARD) If(%RESP%)=(11) then SetEqual(n=ONMSG) If(%RESP%)=(12) then SetEqual(n=ONMISC) If(%RESP%)=(13) then SetEqual(n=ONMULTI) If(%RESP%)=(14) then SetEqual(n=ONPBC) If(%RESP%)=(16) then SetEqual(n=ONPM) If(%RESP%)=(19) then SetEqual(n=ONSOFT) If(%RESP%)=(20) then SetEqual(n=ONSPEC) If(%RESP%)=(21) then SetEqual(n=ONZC) If(%RESP%)=(26) then SetEqual(n=ONUPGRD) ;BELOW ARE FOR ONE-SCREEN HELPS If(%RESP%)=(15) then SetEqual(n=PERFORM) ;If(%RESP%)=(3) then SetEqual(n=MULTI) If(%RESP%)=(5) then SetEqual(n=DISP) If(%RESP%)=(3) then SetEqual(n=CDROM) If(%RESP%)=(18) then SetEqual(n=LOGON) ;If(%RESP%)=(16) then SetEqual(n=PM) If(%RESP%)=(10) then SetEqual(n=MEMORY) If(%RESP%)=(22) then SetEqual(n=PHONES) If(%RESP%)=(24) then Setequal(n=SYSREQS) if(%RESP%)=(25) then SetEqual(n=TECHSPECS) If(%RESP%)=(23) then SetEqual(n=DLUPDATE) If(%RESP%)=(17) then SetEqual(n=PBLOAD) If(%RESP%)=(27) then SetEqual(n=REGUPG) Number(%RESP%) IfTrue(Goto(Generic)) ;BigIf (G:BYE,?:SDISP,Q:MAIN,1:REG,2:PERFORM,3:MULTI,4:PBC,5:ZC,6:COMM,7:DISPHLP,8:CDROM,9:LOGON,10:PM) ;BigIf (11:EVENT,12:FILES,13:MEM,14:HARDWARE,15:SOFTWARE,16:MSGAREA,17:PHONENUMS,18:SYSREQS,19:TECHSPECS,20:DLUPDATES) ;BigIf (21:PBLOAD) Goto(Keyword) Jump (bsel) Goto(Disp) *KeyWord SetEqual(c=1) ;%VAR%C will be a counter var SetEqual(d=1) ;%VAR%D will be a clone var used for screen pausing MenuEqual(q=%RESP%) ;%VAR%Q stores Keyword Being Searched For Seek(onhelp\list.txt) IfNotTrue(Goto(Disp)) ClearScr Say(&CR&&14&Keyword Search for: &12&%VAR%Q) Say(&CR&&11 &12&HELP SECTION) Say(&7&-------------------------------------------------------------------------) InpOpen(Onhelp\list.txt) Say(&15&\*) Do Back(1) Say(&15&\*) InpRead Back(1) Say(|*) SetEqual(r=%ARESP%) Back(1) Say(/*) ;%VAR%R stores filename temporarily SeekFile(ONHELP\%VAR%R,%VAR%Q) Back(1) Say(-*) IfTrue(Jump(SetAndInc)) EofLoop *FinishUp InpClose Back(1) *GetPrompt MenuAsk(&3&Help Section to View (Q to Quit): &14&*) If(%RESP%)=(Q) then Goto(Main) Number(%RESP%) IfNotTrue(goto(GetPrompt)) CmpVal(%RESP%,%VAR%C) IfNotTrue(Goto(InvSection)) SetEqual(x=%RESP%) Find(^:x^,.) If(%ARESP%)=(0) then Goto(NoExten) AddVar(%ARESP%+-1=u) Get(^:x^,1,%VAR%U) Display(ONHELP\%ARESP%) Goto(Disp) *SetAndInc SetEqual(^%VAR%C=%VAR%R) Back(1) ;Say(&3&%VAR%C: &12&%VAR%R*) Say(&3&%VAR%C: &12&*) SetEqual(/NDX=ONHELP\ONHELP.NDX) SeekUser(%VAR%R) IfTrue(Say(%NDFROM%)) IfNotTrue(Say(%VAR%R)) Inc(c) Inc(d) CmpVal(%VAR%D,/:SCREENLEN/) IfTrue(ret) Setequal(d=1) PausePrompt If(%ARESP%)=(STOP) then Goto(FinishUp) Ret *InvSection Beep(1) Say(&12&Invalid Choice!) Secpause(1) Goto(GetPrompt) *MAIN ;EnufSec(10) ;IfNotTrue(Goto(BSel)) ;LoadMem(CONTROL\MAIN.MNU) Return *BYE EnufSec(10) IfNotTrue(Goto(BSel)) LoadSub(CONTROL\MACROS\BYE.CTL) Goto(Disp) *REG LoadSub(CONTROL\ONREG.CTL) ;Display(ONHELP\REG) ;Enter If(%RESP%)=(QUITTING) then Return Goto(Disp) *EVENT LoadSub(CONTROL\ONEVENT.CTL) If(%RESP%)=(QUITTING) then Return Goto(Disp) ;*PWRMAIL ; LoadSub(CONTROL\ONPM.CTL) ; If(%RESP%)=(QUITTING) then Return ; Goto(Disp) *SPECIFIC LoadSub(CONTROL\ONSPEC.CTL) If(%RESP%)=(QUITTING) then Return Goto(Disp) *MISC LoadSub(CONTROL\ONMISC.CTL) If(%RESP%)=(QUITTING) then Return Goto(Disp) *FILES LoadSub(CONTROL\ONFILE.CTL) If(%RESP%)=(QUITTING) then Return Goto(Disp) *DOORS LoadSub(CONTROL\ONDOORS.CTL) If(%RESP%)=(QUITTING) then Return Goto(Disp) *MULTI LoadSub(CONTROL\ONMULTI.CTL) If(%RESP%)=(QUITTING) then Return Goto(Disp) *GENERIC Seek(CONTROL\%VAR%N.CTL) IfTrue(Goto(LoadCTL)) Display(ONHELP\%VAR%N) Goto(Disp) *LOADCTL LoadSub(CONTROL\%VAR%N.CTL) If(%RESP%)=(QUITTING) then Return Goto(Disp) *COMM LoadSub(CONTROL\ONCOMM.CTL) ;Display(ONHELP\COMM) If(%RESP%)=(QUITTING) then Return Goto(Disp) *UPGRADEQS LoadSub(CONTROL\ONUPGRD.CTL) If(%RESP%)=(QUITTING) then Return Goto(Disp) *MULTI *Msdisp Display(ONHELP\MULTHELP) *MPrompt SetEqual(a=) Say(&15&Time Remaining: &14&%LEFT% &15&minutes.) MenuAsk(&3&Online Help Selection? &12&*) *MCheck BigIf (G:BYE,?:MSDISP,R:SDISP,Q:MAIN,1:INTERNODE,2:ONENODE) Jump (bsel) Goto(MsDisp) *INTERNODE Display(ONHELP\INTERNOD) Goto(MSDisp) *ONENODE Display(ONHELP\ONENODE) Goto(MSDisp) *PBC LoadSub(Control\onpbc.ctl) If(%RESP%)=(QUITTING) then Return Goto(Disp) *ZC LoadSub(Control\onzc.ctl) If(%RESP%)=(QUITTING) then Return Goto(Disp) *HARDWARE LoadSub(CONTROL\ONHARD.CTL) If(%RESP%)=(QUITTING) then Return Goto(Disp) *SOFTWARE LoadSub(CONTROL\ONSOFT.CTL) If(%RESP%)=(QUITTING) then Return Goto(Disp) *MSGAREA LoadSub(CONTROL\ONMSG.CTL) If(%RESP%)=(QUITTING) then Return Goto(Disp) *bSel LoadSub(control\macros\badsel.ctl) ;invalid selection ;Goto (disp) Ret *NOEXTEN Display(ONHELP\^:%RESP%^) Goto(disp) UEDIT4CTLΦ *StUedit4 BigIf (O:ChgTOn,R:ChgComp,A:ChgDrops,W:ChgWrk,I:ChgSub,X:ChgSDate,V:ChgAvail) *ChgTOn AnsiGoto (21,17) ;Goes to the location 21,17 on the screen. (21 characters over, 17 down) ask (&15&Enter New Times On: &2&*) ;Gets input from the user. The * tells it NOT to go to the next line. Number (%RESP%) ;Checks to see if %RESP%, the user's response, is a number. IfNotTrue (goto (BadTOn)) ;If %RESP% isn't a number, then go to the label *BadTOn SetEqual (>TIMESON=%RESP%) ;Set the number of times in the currently loaded but unused record file to ;the value contained in (%RESP%a user-entered value). (For a complete list ;of all percent codes [like >TIMESON] refer to the Powerboard docs. Goto (DoIt) ;Goes to the label *DoIt, which is just a place where some variable values ;are changed, and where it saves the currently loaded record file to disk. *BadTOn AnsiGoto (21,17) Say (&4&Bad Times On Value, Not a Number.*) SecPause (2) ;Pauses for 2 seconds. AnsiGoto (21,17) Say ( ) ;Used to clear the space where it said "Bad Times On..." Goto (ChgTOn) *ChgComp AnsiGoto (21,17) ask (&15&Enter New Computer Using: &2&*) SetEqual (>COMP=%RESP%) Goto (DoIt) *ChgDrops AnsiGoto (21,17) Say (&15&Enter New Carrier Dropped Times: &2&*) AnsiGoto (54,17) Ask (*) Number (%RESP%) IfNotTrue (goto (BadDrops)) SetEqual (>DROPPED=%RESP%) Goto (DoIt) *BadDrops AnsiGoto (21,17) Say (&4&Bad Carrier Dropped Amount, Not a Number.*) SecPause (2) AnsiGoto (21,17) Say ( ) Goto (ChgDrops) *ChgWrk AnsiGoto (21,16) Say (&12&Enter New Work Phone Number: &2&) AnsiGoto (27,17) Picture (###-###-####) SetEqual (>WORK=%RESP%) Goto (DoIt) *ChgSub AnsiGoto (25,17) yesnoask (&12&Subscriber? &2&*) SetEqual (>SUB=%RESP%) Goto (DoIt) *ChgSDate AnsiGoto (21,16) Say (&12&Enter New Subscription Expiration Date: &2&*) AnsiGoto (25,17) Picture (##-##-##) SetEqual (>SUBDATE=%RESP%) Goto (DoIt) *ChgAvail AnsiGoto (21,17) YesNoAsk (&12&Default User Available For Chat: &2&*) SetEqual (>DEFAVAIL=%RESP%) Goto (DoIt) *DoIt SetEqual (e=1) ;Set it that the user is flagged as editing a user record. SetEqual (w=1) ;Set it that the user is flagged as editing a user record. ;Again, %var%e and %var%w are similar. I don't know the difference, really. SaveUser (%var%z) Loadmem (control\uedit2.ctl,goto(clearinfo)) BOXSCANCTL ;BOXSCAN PROCEDURE ZAP (LCONF.%NODE%,/:LASTMSG/) CLEARMEM SETEQUAL (H=0) SAY (&CR& &10&Checking your Mail Box:&CR&) *STSCAN INC (H) SELAREA (%VAR%H) ENUFSEC (%AREASEC%) IFNOTTRUE (GOTO (ELOOP)) MSGHIGH(%VAR%H) addvar(%aresp%+-1=z) SETEQUAL(M=MAILBOX\░%SEC%.%VAR%H) JUMP (SCAN) SETEQUAL(M=MAILBOX\%USERN%.%VAR%H) SETEQUAL(Z=0) JUMP (SCAN) IF (&A)=(10) THEN KILL (MAILBOX\%USERN%.%VAR%H) *ELOOP NOTIF (%VAR%H)=(%MAXAREA%) THEN GOTO (STSCAN) INPLINE (LCONF.%NODE%,1) SETEQUAL(/LASTMSG=%ARESP%) SELAREA(/:LASTMSG/) SETEQUAL(/WAIT=N) LOADMEM (CONTROL\BULLETS.CTL) *DDSP HIMSG(/:LASTMSG/) SETEQUAL(F=%ARESP%) SAY (^:1^*) LOWMSG(/:LASTMSG/) SETEQUAL(N=%ARESP%) DO IF (^:U^)=() THEN RET SAY (, ^:U^*) INC (U) LOOP *SCAN SEEK (%VAR%M) IFNOTTRUE (RET) IF (%VAR%Z)=(0) THEN GOTO (DI1) INC(Z) INPOPEN (%VAR%M) ZAP(MSLST.%NODE%) DO INPREAD SETEQUAL(L=%ARESP%) CMPVAL(%VAR%Z,%VAR%L) IFTRUE(APPENDTO(MSLST.%NODE%,%VAR%L)) EOFLOOP INPCLOSE LINES(MSLST.%NODE%) IF (%ARESP%)=(0) THEN RET ARRAYREAD (MSLST.%NODE%) GOTO (DI2) *DI1 ARRAYREAD (%VAR%M) *DI2 SETEQUAL(/LASTMSG=%VAR%H) SETEQUAL(U=2) SAY (&2&%AREANAME% Conference: &14&*) JUMP (DDSP) SETEQUAL(U=1) SAY(&CR&&CR&&3& Would you like to read these messages? &9&[ ]&15&*) SETEQUAL(/nvMsgReadType=10) BACK(4) SETEQUAL(Y=^:1^) YESNOASK(*) SETEQUAL(a=0) IF (%RESP%)=(No) THEN RET ZAP(HI.%NODE%,%VAR%H) LOADSUB (CONTROL\READ.CTL,GOTO(REPEAT)) INPLINE(HI.%NODE%,1) SETEQUAL(H=%ARESP%) CLEARMEM SETEQUAL(A=10) RET ONABANDCTL~ if (/lastmsg)=(1) then goto (Return) *AbandonConf setequal(/resp=1) CmpValO(%MAXAREA%,%RESP%) ;cmpvalo will report no if it's under 1. IfTrue (Return)) SelArea(%RESP%) EnufSec(%AREASEC%) IfTrue(Goto (cnt)) SelArea(/:LASTMSG/) Say(&CR&&14&Your security level isn't sufficient to access the main conference.&CR&) enter Return *cnt ListFile(areas\farea%RESP%) if (%FAREA%)=(AREAS\FAREA%RESP%) then goto (fsetup) Return *fsetup selfarea(4) setequal(/lastdown=4) *seled SetEqual(/LASTMSG=%RESP%) SetEqual(/RESP=23) ; indicates correct execution of subroutine Return HSLINKCTL& flushout exec(adir.exe hstemp%NODE%\*.* >hslst.%NODE%) inpclose inpopen(hslst.%NODE%) setequal(t=0) linefeed(1) setequal(a=/:UPLOADS/) clearmem setequal(c=0) *stcalc inpread setequal(d=%ARESP%) iseek(%var%d) iftrue(goto (nfile)) if (&D)=() then goto (Nfile) fcopy(hstemp%NODE%\%var%d,files\uploads\%var%d) size(files\uploads\%var%d) addvar(%var%t+%ARESP%=t) cnvtk(%ARESP%) addvar(%ARESP%+/:KUP/=o) setequal(/KUP=%var%o) multvar(%var%c*3=y) say(&7&&CR&%var%d&CR&) say(&14&Please enter a description for your file. &10&The description can take up 3 lines.&CR&&CR&&15& (----2----3----4----5----6----7---8----)) resetwrap clearmem wrapask (%MIN%1%%LEN%40%&3&1&12&: &15&*) setequal(^1=%RESP%) wrapask (%LEN%40%%CRON%&3&2&12&: &15&*) if (%RESP%)=(<CR>) then goto (nomore) setequal(^2=%RESP%) ask (%LEN%39%&3&3&12&: &15&*) setequal(^3=%RESP%) *nomore file(files\uploads\,%var%d,3) log(--,%var%d Uploaded (HSLINK).) appendto(logs\UPLOAD.%NODE%,%var%d uploaded at %TIME% on %DATE% by %NAME%.) inc(c) *nfile kill(hstemp%NODE%\%var%d) fendif(donecalc) goto (stcalc) *donecalc inpclose inc(c) say(%BEEP%) multvar(%XMIN%*60=o) divvar(%var%t/%var%o=g) setequal(/UPLOADS=%var%a) return UEDIT3CTLα*StUEdit3 *ClearInfoBox AnsiGoto (2,15); Say ( *) AnsiGoto (30,15); Say ( *) AnsiGoto (2,16); Say ( *) AnsiGoto (30,16); Say ( *) AnsiGoto (2,17); Say ( *) AnsiGoto (30,17); Say ( *) AnsiGoto (2,18); Say ( *) AnsiGoto (30,18); Say ( *) AnsiGoto (30,19); Say ( *) AnsiGoto (30,20); Say ( *) AnsiGoto (20,17) MenuAsk (&15&Enter Name to Search For: &2&*) SetEqual (v=%RESP%) AnsiGoto (20,17) Say (&12& Searching.... *) AnsiGoto (39,17) SetEqual (y=%var%z) ;Stores the number of the user record you are currently viewing in ;%var%y so that the editor can go back to that user when you are done ;searching. *FindIt SeekUser (%var%v) ifnottrue(goto (notfound)) SetEqual (z=%NDNUMB%) Loadmem(control\uedit.ctl,goto(clearinfo)) *NotFound AnsiGoto (20,17) Say (&12&%var%v could not be found in the userfile.*) SecPause (2) ;Pauses for 2 seconds AnsiGoto (20,17) Say (&12& *) SetEqual (z=%var%y) ;Sets the current user record number to %var%y, what it was before the user ;started searching. SetEqual (m=0) Loadmem (control\uedit.ctl,goto(clearinfo)) ;Loads into memory the control file CONTROL\UEDIT.CTL and goes to the label *clearinfo. *Found SetEqual (m=1) ;DO ask if you want to continue searching. SetEqual (z=%var%z) Loadmem (control\uedit.ctl,goto(clearinfo)) *Another AnsiGoto (20,17) YesNoAsk(&15&Continue Search? *) If (%RESP%)=(Yes) then goto (FindIt) SetEqual (m=0) Loadmem (control\uedit.ctl,goto(clearinfo));Do NOT ask if you want to continue searching. ONCOMMCTL;Communications *SSdisp Display(ONHELP\COMMMENU) *SPrompt SetEqual(a=) Say(&15&Time Remaining: &14&%LEFT% &15&minutes.) MenuAsk(&3&Online Help Selection? &12&*) *SCheck BigIf (G:BYE,?:SSDISP,R:SDISP,Q:MAIN,1:GARBAGE,2:INIT,3:CONNECT,4:IRQ,5:DESQVIEW) Jump (bsel) Goto(SSDisp) *GARBAGE Display(ONHELP\GARBAGE) Goto(SSDisp) *CONNECT Display(ONHELP\CONNECT) Goto(SSDisp) *INIT Display(ONHELP\INIT) Goto(SSDisp) *IRQ Display(ONHELP\IRQ) Goto(SSDisp) *DESQVIEW Display(ONHELP\DVCOMM) Goto(SSDisp) *SDISP Return ;LoadMem(Control\ONHELP.CTL,Goto(SDisp)) *MAIN ;LoadMem(Control\MAIN.MNU) SetEqual(/RESP=QUITTING) Return *bSel LoadSub(control\macros\badsel.ctl) ;invalid selection Goto (ssdisp) ;Ret AUTOOFFCTL▌flushout Seek(%pbtemp%tagged.%NODE%) IfTrue(say(&10&%beep%%beep%You have files tagged for download!)) say(&CR&&11&You have requested an auto-logoff. This call will be terminated in 30 seconds.) say(&14&Hit (CTRL-K) to abort or (H) to hang up now.*) SetEqual(n=0) *begin do jump(rkeytst) secpause(1) localkey(1) ifnottrue(goto (psa)) If (%ARESP%)=(H) Then Goto (off) if (%ARESP%)=(h) then goto (off) If (%ARESP%)=() Then Goto (ex) *psa jump(rkeytst) inc(n) say(.*) If (&n)=(30) Then Goto (off) loop *off log(<<,Downloaded file, Auto-logoff) Display(Display\goodbye) quitbbs *ex selfarea(/:lastdown/) say() return *rkeytst ifkey(H) iftrue(goto (off)) ifkey() iftrue(goto (ex)) ret SELFILEACTL1*start menuask(%CRON%&CR&&15&Please enter the area number to search &15&(L=List, ENTER=All)&12&: &14&*) if (%resp%)=(<CR>) then return if (%resp%)=(L) then goto (lista) number(%resp%) ifnottrue (return) cmpvalo(%maxfarea%,%resp%) iftrue(return) selfarea(%resp%) cmpval(%sec%,%filsec%) iftrue(return) setequal(g=%resp%) setequal(f=%resp%) return *lista NotIf (/:SEC/)=(100) then display(%FAREA%) If (/:SEC/)=(100) then goto (sysv) goto (start) *sysv seek(%FAREA%.100) iftrue(view(%FAREA%.100)) ifnottrue(display(%FAREA%)) goto (start) BADPASSCTL/Log (<<,User (%var%d) entered an invalid) Log (<<,password 4 times.) if (%BPComment%)=(No) then Goto(KickOff) ;BPComment is set via PBConfig *badpass ClearScr Beep (2) MenuSay(&CR&&12&You Have failed to enter the correct password multiple times!) Say(&CR&&11&Enter One Line Reason Why You Failed to Enter the Correct Password:) Say(&3&[&7&░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░&3&]&12&*) Back(53) Ask (*%MIN%1%%LEN%52%) Log(<<,%NAME%'s Reason:) Log(<<, "%RESP%") Zap(MSG.%NODE%,This message has been automatically generated for you by Powerboard.) AppendTo(MSG.%NODE%,) AppendTo(MSG.%NODE%,%NAME% attempted to logon to the BBS at %TIME% on %DATE%, but) AppendTo(MSG.%NODE%,failed to enter the correct password multiple times. The user offered) AppendTo(MSG.%NODE%,the following explanation for this password failure:) AppendTo(MSG.%NODE%,) AppendTo(MSG.%NODE%,%RESP%) AppendTo(MSG.%NODE%,) SeekUser(%SYSOP%) If(%ARESP%)=(No) then SetNv(tousernum=1) SetNv(tousernum=%NDNUMB%) ;if the sysop cannot be located in user file, assume sysop is user #1 InitTxt Lines(MSG.%NODE%) Import(MSG.%NODE%,,1,%ARESP%) selarea(1) Writemsg(1,%SYSOP%,Powerboard BBS,Password Failure,%nv%tousernum%,Yes,0,No,,) Kill(MSG.%NODE%) *KickOff Log(<<,User disconnected by BBS.) quitbbs NO1CTL╓clearscr say(Non-Subscribing members are not accepted on this node at this time.) say(Please call our node 2 at 914-833-1479. Thank you.&CR&) log(--,Non-Subscriber Tried Logon to Node 1) secpause(3) quitbbs LOCKOUTCTLûLog (--,Locked out user (%var%d) attempted) ;log info to callers log Log (--,to log onto the BBS.) Display(display\LOCKOUT) secpause(3) QuitBBS DPHONECTLôlog(!!,User attempted logon with active) log(!!,user's phone number (/:phone/)) appendto(badnames.bbs,%NAME%) display(display\dphone) quitbbs HSDN º*donecalc inpclose inc(c) say(%BEEP%) multvar(%XMIN%*60=o) divvar(%var%t/%var%o=g) addvar(/:uploads/+%var%c=a) setequal(/UPLOADS=%var%a) return BATCHCTL╧!Kill(%pbtemp%Free.%NODE%,%pbtemp%batch.%node%) *startbatch setnv(q2=0) setnv(r2=0) setequal(e=0) SetEqual(m=0) SETEQUAL(Q=0) SetEqual(w=0) setequal(d=) *fname inc(e) setequal(r=%nv%r2%) INC(R) setnv(r2=%var%r) setequal(q=%nv%q2%) NOTIF (%VAR%Q)=(0) THEN GOTO (WN) *gfm Say(&10&Pressing (&11&ENTER&10&) will allow you to start the download.) if (%nv%filename%)<>() then setwrap(%nv%filename%) setnv(filename=) endif order(%var%e) Say(&3&Please enter name of the %var%e%aresp% file to download&12&: &14&( )&15&*) Back(13) setnv(noask=) MenuAsk(%NOCR%%CRON%%LEN%12%*) if (%RESP%)=(<CR>) then Say () If (%RESP%)=(<CR>) Then Goto (entpressed) len(%Resp%) Back(%ARESP%) AddDef(.%DEFEXT%) say (%Resp%) if (%Resp%)=(%var%d) then goto (ah) FIND (%RESP%,?) NOTIF (%ARESP%)=(0) THEN GOTO (IW) FIND (%RESP%,*) NOTIF (%ARESP%)=(0) THEN GOTO (IW) seekfile(passfile.lst,%RESP%) iftrue(jump(pf)) find(%resp%,**) iftrue(setnv(noask=Y)) iftrue(goto(entpressed)) Say(&CR&&11&Please wait!... We're searching for the file...*) *SF SeekFall(%RESP%) If (%ARESP%)=(INVALID) Then Goto (invfn) ;If invalid filename... If (%ARESP%)=(No) Then Goto (nothere) ;If it doesn't exist.. If (%ARESP%)=(NOT ENOUGH) Then Goto (notenuf) ;If not enuf security If (%RATIO%)=(NOT OK) Then Goto (badratio) ;If ratio is bad... if (/:dailydl/)=(%dailyL%) then goto (badratio) selFarea(%ARESP%) ;select the area it's in... enufsec(%filsec%) ifnottrue(goto(notenuf)) Size(%FILPATH%%RESP%) setequal(j=%aresp%) setequal(q=%nv%q2%) IF (%var%Q)=(0) THEN Say(Found!) IF (&R)=(&Q) THEN SETEQUAL(Q=0) setnv(q2=0) endif ;addvar(%var%e+1=g) Say(&CR&&14& ─────── &12&Statistics for %RESP% (File #%var%e)&14& ───────&15&) Say(Free Download: &11&%FREE% &15&*) If (%FREE%)=(No) Then Say( *) Say(&F&8&Size: &11&%ARESP% &15&) ;ARESP is from up there where we checked fileSize fDate(%FILPATH%%RESP%) ;get date stamp from file Say(Dated: &11&%ARESP% &15&&F&9&Transfer Time: *) tTime(%var%J) Say(&11&%ARESP%&CR&) setequal(g=%ttim%) if (%FREE%)=(Yes) then setequal(g=0) AddVar(%var%m+%var%g=m) ;add to total # of minutes it'll take to d/l if (%var%M)>(/:left/) then goto (notenuf2) SetEqual(d=%RESP%) If (%CD%)=(Yes) then Say(&CR&&12&Copying File from CD-ROM Drive...*) FCopy(%FILPATH%%VAR%D,%PBTEMP%%VAR%D) ; copy file from CD to hard drive If(%ARESP%)=(ERROR) Then Goto(CopyError) SetNv(path=%PBTEMP%) Say(Done!) endif If(%CD%)<>(Yes) then SetNv(path=%FILPATH%) AppendTo(%pbtemp%free.%NODE%,%FREE%) ;append to our free temporary file... IfTrue( AddVar(%var%m+-%TTIM%=m)) ;don't count If freefile... AppendTo(%pbtemp%batch.%NODE%,%NV%PATH%%var%d) ;append to list of files in batch inc(w) Goto (fname) ;go Back and see If they want to d/l another file... *notenuf2 addvar(%var%m+-%var%g=m) Display(Display\NODLTIME) goto(gf) *initxfer CmpVal(%var%m,/:LEFT/) ;see If they have enough time IfNotTrue( Goto (notenuftime)) addvar(/:downloads/+%var%w=m) if (%uratio%)=(0) then goto (stdown) notif (/:uploads/)=(0) then goto (haveuploaded) cmpval(%uratio%,%var%m) iftrue(goto(badratio)) goto(stdown) *HaveUploaded addvar(%var%m+-1=m) multvar(/:uploads/*%uratio%=e) addvar(%var%m+-%var%e=m) if (%var%m)=(1) then goto (stdown) cmpval(%var%m,1) iftrue(goto(stdown)) goto (badratio) *stDown setequal(m=No) if (%nv%noask%)=(Y) then goto (skipask) say(&CR&&15& Would you like to download these files? (&12&Y&15&/&12&N&15&)&14&*) back(4) yesnoask(*) If (%RESP%)=(No) Then Goto (ex) say(&15&Would you like us to log you off afterwards? (&12&Y&15&/&12&N&15&)&14&*) back(4) yesnoask(*) SetEqual(m=%RESP%) *skipask Say(&CR&&11&We're sending the files you requested. Please get ready to receive them now.) FixFile(protocol\%var%b-d.bt,%pbtemp%%var%b-d.bat) ;filter percent codes InitClock ;init transfer time clock... setequal(n=%var%b) Exec(%pbtemp%%var%b-d.BAT│) ;run the protocol Kill(%pbtemp%%var%b-d.bat) ;get rid of temporary prot batch file If(%CD%)=(Yes) then Kill(%PBTEMP%%VAR%D) ; kill file copied from CD to hd drive *success setequal(l=0) setequal(i=/:left/) TogLocal ;go into local mode..just in case they hang up. NotIf (%ARESP%)=(0) Then Goto (aborted) ;If errorlevel Goto aborted setequal(/left=10) XferTime ;calc time it took for d/l SetEqual(e=%ARESP%) InpOpen(%pbtemp%batch.%NODE%) ;start reading our batch temp file If (%ARESP%)=(ERROR) Then Goto (dsucc) ;If we cant read it... SetEqual(t=0) linefeed(1) SetEqual(a=/:DOWNLOADS/) ;set a to current # of d/l's Kill(%pbtemp%tagged.%NODE%) ;get rid of tag file kill(%pbtemp%tagged2.%node%) setequal(/nvtotaltime=0) SetEqual(c=0) *stcalc inc(c) InpRead SetEqual(d=%ARESP%) Size(%var%d) AddVar(%var%t+%ARESP%=t) log(--,%var%d Downloaded via Batch) log(--, Protocol: '%nv%protocol%'.) AppendTo(logs\DOWNLOAD.%NODE%,%var%d downloaded by %NAME% at %TIME% on %DATE%.) setequal(b=/:dailydl/) InpLine(%pbtemp%free.%NODE%,%var%c) NotIf(%ARESP%)=(Yes) Then inc(a) notif(%aresp%)=(Yes) then inc(b) setequal(/dailydl=%var%b) if (%aresp%)=(Yes) then goto (fre) fEndIf(donecalc) Goto (stcalc) *fre addvar(%var%c+-1=c) Size(%var%d) tTime(%ARESP%) addvar(%var%l+%ttim%=l) fEndIf(donecalc) Goto (stcalc) *donecalc InpClose Say(%BEEP%) setequal(o=%xtime%) DivVar(%var%t/%var%o=g) CnvtK(%var%t) AddVar(%ARESP%+/:KDOWN/=o) SetEqual(/KDOWN=%var%o) addvar(/:downloads/+%var%c=a) SetEqual(/DOWNLOADS=%var%a) addvar(%var%i+%var%l=i) Log(--,Rate: %var%g CPS) *dsucc setequal(/left=%var%i) TogLocal ;go Back to remote, non-local, mode Display (Display\SUCCESSB) ;show success screen if (%VAR%b)=(HS) then loadmem(control\hslink.ctl) If (&m)=(Yes) Then Goto (autooff) *ex Kill(%pbtemp%free.%NODE%) SelFarea(/:LASTDOWN/) ;set d/l area Back to their default d/l area linefeed(1) goto (ret0) *CopyError Log(!!,File "%VAR%D" unable to be copied from "%FILPATH%" to "%PBTEMP%") Beep(1) Say(&CR&&14&ERROR: The selected file could not be copied from the CD-ROM Drive!) Say( Please notify the Sysop immediately!) Say(&CR&&12&Aborting transfer of currently selected file...) SecPause(2) Goto(gf) ; get other files *aborted TogLocal Log(--,Batch Download aborted.) *lcl Display (Display\ABORTED) Goto (ex) *badratio Display(Display\BADRATIO) SelFarea(/:LASTDOWN/) linefeed(1) goto (ret0) *autooff loadmem(control\autoOff.ctl) *free Log(--,Freefile downloaded, time refunded.) AddVar(%XMIN%+%LEFT%=t) SetEqual(/LEFT=t) If (&m)=(Yes) Then Goto (autooff) Goto (ex) *Notenuf Display (Display\fbadsec) Goto (gf) *nothere Display(Display\notfnd) Goto (gf) *invfn Display(Display\INVALID) FlushOut SelFarea(/:LASTDOWN/) Enter Goto (gf) *gf setequal(r=%nv%r2%) addvar(%var%r+-1=r) setnv(r2=%var%r) addvar(%var%e+-1=e) goto(fname) *entpressed linefeed(1) If (&w)=(0) Then goto (ret0) Goto (initxfer) *notenuftime Display(Display\NODLTIME) goto (ret0) *ah Say(&CR&&12&That file is already in the download batch!&CR&) goto (gf) *IW ZAP(%pbtemp%WS.%NODE%) SAY() loadEXEC(WS.EXE,/F:%FAREA%.BBS /O:%pbtemp%WS.%NODE% /S:%SEC% /T:%RESP%) lines(%pbtemp%ws.%node%) IF (%ARESP%)=(0) THEN GOTO (NOTHERE) SETEQUAL(Q=%ARESP%) setnv(q2=%aresp%) SETEQUAL(R=1) if (%var%e)<(1) then setequal(e=1) setnv(r2=1) setnv(pctr=1) *WN setequal(r=%nv%pctr%) addvar(%var%r+5=r) setnv(pctr=%var%r) if (%var%r)=>(/:screenlen/) then pauseprompt if (%aresp%)=(STOP) then setequal(q=0) addvar(%var%e+-1=e) setnv(q2=0) goto (fname) endif setnv(pctr=1) endif setequal(r=%nv%r2%) INPLINE(%pbtemp%WS.%NODE%,%VAR%R) SETEQUAL(/RESP=%ARESP%) GOTO (SF) *pf inpopen(passfile.lst) setequal(c=%RESP%,) len(%VAR%C) setequal(d=%ARESP%) do inpread setequal(e=%ARESP%) get(&e,1,%VAR%D) if (%ARESP%)=(&C) then goto (ip) eofloop inpclose ret *ip inpclose say(&3&What is the password for this file?&12&: &15&*) cgetpass(o) say() get(&e,%VAR%D,100) setequal(a=,%RESP%) setequal(f=%aresp%) addvar(%var%d+-1=d) get(&c,1,%var%d) setequal(/resp=%aresp%) if (&a)=(&f) then ret goto (gfm) *ret0 setnv(protocol=) if (%nv%wipe%)=() then return setnv(wipe=) setnv(wipmode=1) return ONDOORSCTLε;Door Problems and Questions *SSdisp Display(ONHELP\ONDOORS) *SPrompt SetEqual(a=) Say(&15&Time Remaining: &14&%LEFT% &15&minutes.) MenuAsk(&3&Online Help Selection? &12&*) *SCheck BigIf (G:BYE,?:SSDISP,R:SDISP,Q:MAIN,1:SETUP,2:OUTOFMEM,3:OS2DOOR,4:GENPROBS) Jump (bsel) Goto(SSDisp) *SETUP Display(ONHELP\DOORHLP) Goto(SSDisp) *OUTOFMEM Display(ONHELP\DOORS) Goto(SSDisp) *OS2DOOR Display(ONHELP\OS2DOOR) Goto(SSDisp) *GENPROBS Display(ONHELP\DOORS2) Goto(SSDisp) *SDISP Return ;LoadMem(Control\ONHELP.CTL,Goto(SDisp)) *MAIN ;LoadMem(Control\MAIN.MNU) SetEqual(/RESP=QUITTING) Return *bSel LoadSub(control\macros\badsel.ctl) ;invalid selection Goto (ssdisp) ;Ret ONDOWNCTL▒ ;ondown.ctl - called for downloading files in online help. ;REQUIRES: filename to download be stored in %VAR%R variable prior to calling ; this subroutine ; *down setequal(/nvfarea=%farea%) ;store current conference data file in memory SetActivity(Downloading Files) Kill(Batch.%NODE%) if (%local%)=(TRUE) then setequal(b=1) ;if local, don't let user use batch if (%LOCAL%)=(TRUE) then goto (Pok) ;local users cant use protocols If (/:PROTOCOL/)=(N) Then Goto (PickProt) ;if they don't have a default ;protocol selected, make them Pick Display(Display\defuse) ;defuse.asc/ans: "using default prot" SetEqual(b=/:PROTOCOL/) ;set to protocol defualt selection Goto (pseled) ;bypass selection procedure *PickProt Display (Display\DN-PROTS) MenuAsk (&3&Which transfer protocol would you like to use?&11&(or Q to Quit)&12&: &15&*) Find(%RESP%,\) ;make sure they didnt stick a backslash in there NotIf (%ARESP%)=(0) Then Goto (badprot) BigIf(h:phelp,q:filesback) SetEqual(b=%RESP%) *pseled Seek(protocol\%var%b-D.BT) ;check to see If protocol exists.. IfTrue(Goto (Pok)) *badprot loadsub(control\macros\badsel.ctl) Goto (PickProt) ;go back and ask again.. *Pok ;Seek(tagged.%NODE%) ;see If there are any tagged files.. ;IfTrue(Goto (texist)) ;linefeed(1) ;len(%var%b) ;see If they picked a batch protocol ;NotIf(%ARESP%)=(1) Then loadmem(control\BATCH.CTL) *fname ;say(&3&Please enter the name of the file to download&12&: &14&(&F&12)&15&*) ;back(13) ;menuask(%NOCR%%CRON%%LEN12%*) ;if (%RESP%)=(<CR>) then say() ;if (%RESP%)=(<CR>) then Return ;len(%Resp%) ;back(%Aresp%) ;adddef(.%DEFEXT%) ; say(%Resp%&11&&CR&) ;setequal(r=%resp%) seek(passfile.%node%) ifnottrue(goto(nopass)) inpopen(passfile.%node%) setequal(a=%resp%,) len(%var%a) setequal(c=%aresp%) do inpread ;read line from passfile.node setequal(d=%aresp%) get(&d,1,%var%c) if (%aresp%)=(%var%a) then goto (el) ;if match found in passfile.node fendif(nopass) loop *el inc(c) get(&d,%var%c,100) setequal(a=%aresp%) say(&3&Please enter the password for this file&12&: &15&*) cgetpass(.) ;get the password in capital letters, echoing dots say() if (%resp%)=(%var%a) then goto (nopass) ;if password correct, let them through inpclose ;close passfile.node goto(fname) ;password wasn't correct... don't let them get this file *nopass setequal(/resp=%var%r) ;restore contents of RESP variable inpclose ;close passfile.node say(Please wait!... We're searching for the file...*) Seekfall(%RESP%) If (%ARESP%)=(INVALID) Then Goto (invfn) ;If invalid filename if (%aresp%)=(No) then jump(ConfScan) If (%ARESP%)=(No) Then Goto (nothere) If (%ARESP%)=(NOT ENOUGH) Then Goto (notenuf) If (%RATIO%)=(NOT OK) Then Goto (badratio) ;If bad ratio... selFarea(%ARESP%) ;set file area to where the file is... size(%FILPATH%%RESP%) say(Found!&CR&&CR&&14& ─────── &12&Statistics for %RESP% &14& ───────&15&) say(Free Download: &11&%FREE% &15&*) If (%FREE%)=(No) Then say( *) say( Size: &11&%ARESP% &15&&CR&Dated: *) fdate(%FILPATH%%RESP%) ;get file date say(&11&%ARESP% &15& Transfer Time: *) size(%FILPATH%%RESP%) ;get size of the file ttime(%ARESP%) ;get transfer time say(&11&%ARESP%) cmpval(%TTIM%,/:LEFT/) ;sufficient time left? If (%ARESP%)=(No) Then If (%FREE%)=(No) Then Goto (notenuftime) SetEqual(d=%RESP%) say(&CR&&3& Would you like to download this file? &9&[Y/n]&14&*) back(4) yesnoask(*) If (%RESP%)=(No) Then Goto (ex) say(&3&Would you like us to log you off afterwards? &9&[Y/n]&14&*) back(4) yesnoask(*) SetEqual(m=%RESP%) say(&CR&&11&We're sending the file you requested. Please get ready to receive it now.) If (%LOCAL%)=(TRUE) Then Goto (lcl) fixfile(protocol\%var%b-d.bt,protocol\%var%b-d.bat) ;filter percent codes initclock exec(protocol\%var%b-d.BAT│) Kill(protocol\%var%b-d.bat) *success setequal(t=) NotIf (%ARESP%)=(0) Then Goto (aborted) notif (%LOCAL%)=(FALSE) then setequal(t=TOG) if (%LOCAL%)=(FALSE) then toglocal xfertime ;how long did it take? SetEqual(e=%ARESP%) multvar(%XMIN%*60=o) size(%FILPATH%%var%d) ;get size of file divvar(%ARESP%/%var%o=g) ;divide by # of seconds the transfer took ;to get CPS (chars per second) cnvtk(%ARESP%) ;convert value to K bytes addvar(%ARESP%+/:KDOWN/=o) SetEqual(/KDOWN=%var%o) say(%BEEP%*) log(--,%var%d Downloaded.) log(--,Rate: %var%g CPS) appendto(logs\DOWNLOAD.%NODE%,%var%d downloaded by %NAME% at %TIME% on %DATE%.) SetEqual(a=/:DOWNLOADS/) inc(a) SetEqual(/DOWNLOADS=%var%a) notif (%var%t)=(TOG) then toglocal eline(20) ;erase current line on screen, which is ;usually garbage from the protocol Display (Display\SUCCESS) If (%FREE%)=(Yes) Then Goto (free) If (&m)=(Yes) Then Goto (autooff) *ex selarea(/:lastmsg/) listfile(%nv%farea%) selfarea(/:LASTDOWN/) linefeed(1) return *aborted eline(20) log(--,Download of %var%d aborted.) display(display\aborted) goto (ex) *lcl menuask(&CR&&3&Please specify the path &11&(e.g. C:\DLS\)&3& for this file&12&: &15&*) setequal(k=10) initclock fcopy (%FILPATH%%var%d,%RESP%\%var%d) notif (%ARESP%)=(0) then goto (aborted) goto (success) *badratio Display(Display\BADRATIO) goto(ex) *autooff loadmem(control\AutoOff.ctl) *free log(--,Freefile downloaded, time refunded.) size(%var%d) ttime(%ARESP%) addvar(%TTIM%+/:LEFT/=t) SetEqual(/LEFT=%var%t) If (&m)=(Yes) Then Goto (autooff) Goto (ex) *texist len(%var%b) If (%ARESP%)=(1) Then Goto (len1) say(&CR&&14&Files Currently Tagged:&CR&) ;lview(tagged.%NODE%,10,7) inpopen(tagged.%node%) setequal(d=0) setequal(m=0) setequal(e=0) setequal(f=0) do inc(d) inpread setequal(w=%aresp%) cmpval(9,%var%d) say(&10&*) ifnottrue(say(0*)) say(%var%d: &7&%var%w*) len(%var%w) addvar(12+-%aresp%=a) get( ,1,%var%a) say(%aresp%*) inpline(tagged2.%node%,%var%d) setequal(w=%aresp%) size(%var%w) addvar(%var%e+%aresp%=e) setequal(c=%aresp%) say( %aresp%*) len(%aresp%) addvar(7+-%aresp%=a) get( ,1,%var%a) say(%aresp% bytes, *) ttime(%var%c) say(%aresp% Download Time) inpLine(free.%node%,%var%d) addvar(%var%f+%ttim%=f) ifnottrue(addvar(%var%m+%ttim%=m)) eofloop inpclose cnvtk(%var%e) say(&CR&&3& TOTAL %aresp% kbytes %var%f minutes) say(&CR&&3&Would you like to download the tagged files? &9&[Y/n]&14&*) back(4) yesnoask(*) say(&14&) If (%RESP%)=(No) Then loadmem(control\BATCH.CTL,Goto (startbatch)) say(Adding Tagged files to Batch...*) fcopy(tagged2.%NODE%,batch.%NODE%) lines(batch.%NODE%) ;how many lines are in the file? SetEqual(w=%ARESP%) ;w=# files in batch say(Done!&CR&) loadmem(control\BATCH.CTL,Goto (fname)) *len1 say(&10&&CR&You have tagged files but they can only be downloaded with a BATCH) say(protocol. Please press &11&Enter&10& now to abort then choose a different protocol) say(if you'd like to download your tagged files.&CR&) Goto (fname) *notenuftime Display(Display\NODLTIME) return *phelp Display(Display\help\prot,/:SEC/) Goto (PickProt) *invfn Display(Display\INVALID) flushout listfile(%nv%farea%) selfarea(/:LASTDOWN/) Enter goto (fname) *filesback return *notenuf Display (Display\fbadsec) selarea(/:lastmsg/) listfile(%nv%farea%) selfarea(/:LASTDOWN/) return *NotHere Display(Display\notfnd) SecPause(3) return ; return if file not existing ;goto (fname) *moveerr say(&CR&&14&The directory you specify is where the file already resides!&CR&) goto (endmove) *ConfScan setequal(g=1) ;scan other conferences for the file do setequal(d=%farea%) listfile(areas\farea%var%g) if (%var%d)=(%farea%) then goto (lp) say(.*) seekfall(%resp%) notif (%aresp%)=(No) then ret *lp inc(g) if (%var%g)>(%maxarea%) then ret loop ONHELPCT «;Online Help Database ;Programmed for Powerboard World Support BBS ;Programmed by Doug Vermes, 12/29/93 *Disp SetActivity (Main Menu) ;if(/:EXPERT/)=(Y) then linefeed(1) ;if(/:EXPERT/)=(Y) then Goto (Prompt) *sdisp Display (onhelp\onhelp2) *Prompt SetEqual(a=) Say(&15&Time Remaining: &14&%LEFT% &15&minutes.) MenuAsk(&3&Online Help Selection or Keyword to Search For? &12&*) *Check BigIf (G:BYE,?:SDISP,Q:MAIN,1:REG,2:PERFORM,3:MULTI,4:PBC,5:ZC,6:COMM,7:DISPHLP,8:CDROM,9:LOGON,10:PM) BigIf (11:EVENT,12:FILES,13:MEM,14:HARDWARE,15:SOFTWARE,16:MSGAREA,17:PHONENUMS,18:SYSREQS,19:TECHSPECS,20:DLUPDATES) BigIf (21:PBLOAD) Goto(Keyword) Jump (bsel) Goto(Disp) *KeyWord SetEqual(c=1) ;%VAR%C will be a counter var SetEqual(d=1) ;%VAR%D will be a clone var used for screen pausing MenuEqual(q=%RESP%) ;%VAR%Q stores Keyword Being Searched For Seek(onhelp\list.txt) IfNotTrue(Goto(Disp)) ClearScr Say(&CR&&14&Keyword Search for: &12&%VAR%Q) Say(&CR&&11 &12&HELP SECTION) Say(&7&-------------------------------------------------------------------------) InpOpen(Onhelp\list.txt) Say(&15&\*) Do Back(1) Say(&15&\*) InpRead Back(1) Say(|*) SetEqual(r=%ARESP%) Back(1) Say(/*) ;%VAR%R stores filename temporarily SeekFile(ONHELP\%VAR%R,%VAR%Q) Back(1) Say(-*) IfTrue(Jump(SetAndInc)) EofLoop *FinishUp InpClose Back(1) *GetPrompt MenuAsk(&3&Help Section to View (Q to Quit): &14&*) If(%RESP%)=(Q) then Goto(Main) Number(%RESP%) IfNotTrue(goto(GetPrompt)) CmpVal(%RESP%,%VAR%C) IfNotTrue(Goto(InvSection)) Display(ONHELP\^:%RESP%^) Goto(Disp) *SetAndInc SetEqual(^%VAR%C=%VAR%R) Back(1) ;Say(&3&%VAR%C: &12&%VAR%R*) Say(&3&%VAR%C: &12&*) SetEqual(/NDX=ONHELP\ONHELP.NDX) SeekUser(%VAR%R) IfTrue(Say(%NDFROM%)) IfNotTrue(Say(%VAR%R)) Inc(c) Inc(d) CmpVal(%VAR%D,/:SCREENLEN/) IfTrue(ret) Setequal(d=1) PausePrompt If(%ARESP%)=(STOP) then Goto(FinishUp) Ret *InvSection Beep(1) Say(&12&Invalid Choice!) Secpause(1) Goto(GetPrompt) *MAIN ;EnufSec(10) ;IfNotTrue(Goto(BSel)) LoadMem(CONTROL\MAIN.MNU) *BYE EnufSec(10) IfNotTrue(Goto(BSel)) LoadSub(CONTROL\MACROS\BYE.CTL) Goto(Disp) *REG LoadSub(CONTROL\ONREG.CTL) ;Display(ONHELP\REG) ;Enter Goto(Disp) *EVENT Display(ONHELP\EVENT) ;Enter Goto(Disp) *LOGON Display(ONHELP\LOGON) Goto(Disp) *PERFORM Display(ONHELP\PERFORM) Goto(Disp) *FILES Display(ONHELP\FILES) Goto(Disp) *MEM Display(ONHELP\MEMORY) Goto(Disp) *COMM LoadSub(CONTROL\ONCOMM.CTL) ;Display(ONHELP\COMM) Goto(Disp) *DISPHLP Display(ONHELP\DISP) Goto(Disp) *CDROM Display(ONHELP\CDROM) Goto(Disp) *PM Display(ONHELP\PM) Goto(Disp) *MULTI *Msdisp Display(ONHELP\MULTHELP) *MPrompt SetEqual(a=) Say(&15&Time Remaining: &14&%LEFT% &15&minutes.) MenuAsk(&3&Online Help Selection? &12&*) *MCheck BigIf (G:BYE,?:MSDISP,R:SDISP,Q:MAIN,1:INTERNODE,2:ONENODE) Jump (bsel) Goto(MsDisp) *INTERNODE Display(ONHELP\INTERNOD) Goto(MSDisp) *ONENODE Display(ONHELP\ONENODE) Goto(MSDisp) *PBC *PBCSdisp Display(ONHELP\PBCHELP) *PBCPrompt SetEqual(a=) Say(&15&Time Remaining: &14&%LEFT% &15&minutes.) MenuAsk(&3&Online Help Selection? &12&*) *PBCCheck BigIf (G:BYE,?:PBCSDISP,R:SDISP,Q:MAIN,1:NONSTAND,2:TABCHG,3:EXITSAVE,4:NOEFFECT,5:BASIC) Jump (bsel) Goto(PBCSdisp) *NONSTAND Display(ONHELP\NONSTAND) Goto(PBCSDisp) *TABCHG Display(ONHELP\TABCHG) Goto(PBCSDisp) *EXITSAVE Display(ONHELP\EXITSAVE) Goto(PBCSDisp) *NOEFFECT Display(ONHELP\NOEFFECT) Goto(PBCSDisp) *BASIC Display(ONHELP\BASIC) Goto(PBCSDisp) *ZC LoadMem(Control\onzc.ctl) *HARDWARE *HSdisp Display(ONHELP\HARDWARE) *HPrompt SetEqual(a=) Say(&15&Time Remaining: &14&%LEFT% &15&minutes.) MenuAsk(&3&Online Help Selection? &12&*) *HCheck BigIf (G:BYE,?:HSDISP,R:SDISP,Q:MAIN,1:TANDY,2:ZOOM,3:MITSUMI,4:ORCHID) Jump (bsel) Goto(HSDisp) *TANDY Display(ONHELP\TANDY) Goto(HSDisp) *ZOOM Display(ONHELP\ZOOM) Goto(HSDisp) *MITSUMI Display(ONHELP\MITSUMI) Goto(HSDisp) *ORCHID Display(ONHELP\ORCHID) Goto(HSDisp) *SOFTWARE LoadMem(CONTROL\ONSOFT.CTL) *MSGAREA LoadMem(CONTROL\ONMSG.CTL) *TECHSPECS Display(ONHELP\TECHSPECS) Goto(Disp) *PHONENUMS Display(ONHELP\PHONES) Goto(Disp) *DLUPDATES Display(ONHELP\DLUPDATE) Goto(Disp) *SYSREQS Display(ONHELP\SYSREQS) Goto(Disp) *PBLOAD Display(ONHELP\PBLOAD) Goto(Disp) *bSel LoadSub(control\macros\badsel.ctl) ;invalid selection ;Goto (disp) Ret ONEVENTCTL»;Event Problems and Questions *SSdisp Display(ONHELP\ONEVENT) *SPrompt SetEqual(a=) Say(&15&Time Remaining: &14&%LEFT% &15&minutes.) MenuAsk(&3&Online Help Selection? &12&*) *SCheck BigIf (G:BYE,?:SSDISP,R:SDISP,Q:MAIN,1:BATFILE,2:NORUN,3:OUTOFMEM) Jump (bsel) Goto(SSDisp) *BATFILE Display(ONHELP\EVENTBAT) Goto(SSDisp) *NORUN Display(ONHELP\EVENT2) Goto(SSDisp) *OUTOFMEM Display(ONHELP\EVENT) Goto(SSDisp) *SDISP Return ;LoadMem(Control\ONHELP.CTL,Goto(SDisp)) *MAIN ;LoadMem(Control\MAIN.MNU) SetEqual(/RESP=QUITTING) Return *bSel LoadSub(control\macros\badsel.ctl) ;invalid selection Goto (ssdisp) ;Ret TQOTDCTLBSAY(&CR&&14&%FNAME%, your quote for the day is:&2&*) INPOPEN(TQOTD.BBS) RANDN(3028) INPREAD(%ARESP%) SAY(&CR&) *DOIT IF (%ARESP%)=(*) THEN GOTO (SHOWIT) FENDIF(QT) INPREAD GOTO (DOIT) *SHOWIT INPREAD IF (%ARESP%)=(*) THEN GOTO (QT) FENDIF(QT) SAY(%ARESP%) GOTO(SHOWIT) *QT INPCLOSE say() enter RETURN BADNAMECTL⌠Log (--,Alias (%var%d) attempted logon.) if (%graphics%)<>(WIP) then Display(display\BADNAME) if (%graphics%)=(WIP) then jump (wipm) QuitBBS *wipm setequal(c=13~You have entered a name that this BBS considers unacceptable. Please do not call back. We do not appreciate your call.~Bad Name Entered~0~) jump (wipc) secpause(3) ret *GCHAR COMPRINT(%NV%TEXT%) SETEQUAL(A=0) DO COMKEY ASCII IF(%ARESP%)=(21) THEN GOTO(GCHAR) INC(A) IF(&B)=(-1) THEN IF (%RESP%)<>() THEN RET IF(%ARESP%)=(&B) THEN RET IF(&A)>(45) THEN RET IF(%RESP%)<>() THEN SETNV(PBACK=%NV%PBACK%%RESP%) DELAY18TH(2) LOOP *WIPC LOCALKEY(1) IFNOTTRUE(GOTO(NOLKEY)) SYSKEYCHECK SETEQUAL(/RESP=) SETEQUAL(/RESP=) *NOLKEY CCARRIER IF(%ARESP%)=(0) THEN GOTO (NOC0) CHECKSUM(%VAR%C) SETEQUAL(B=6) SETNV(TEXT=$%ARESP%%VAR%C%C%13%) SETNV(PBACK=) JUMP(GCHAR) IF(%ARESP%)<>(6) THEN JUMP(GCHAR) SETEQUAL(/IBUFF=%NV%PBACK%) LEN(%NV%PBACK%) SETEQUAL(/IBUFF0=%ARESP%) RET *NOC0 log(<<,Carrier lost.) quitbbs REFUSEDCTLDisplay(display\REFUSED) Say (&11&( )&15&*) Back (61) Ask (%MIN%1%%LEN%60%*) Say (&CR&&14&Thank you very much for your cooperation.&CR&) Log (--,User (%var%d) declined membership because:) Log (--,%RESP%) QuitBBS YESNOCTLFsay(%var%a (&12&Y&15&/&12&N&15&)&14&*) back(4) yesnoask(*) return DOORSM `;modified for The Swing BBS... *disp SetActivity (Doors Menu) *sdisp Display (display\doors,/:SEC/) *prompt menuask (%MIN%1%&0&$7$%CACT%$0$&7& %LEFT% Minutes Remain. &15&Please select, &14&%FNAME%&12&: &15&*) BigIf (G:GOODBYE,Q:MAIN,H:HELP,?:SDISP,X:EXP) number(%RESP%) ifNotTrue( goto (bsel)) seek(door%RESP%.Bat) ;;;;;;modified for THE SWING... ifnottrue(goto (bsel)) clearscr Display(Display\door%RESP%) Log(--,Executing Door #%RESP%) FixFile (door.bt,door.bat) setequal (a=/:DOORS/) inc(a) setequal(/DOORSE=%VAR%A) Say(&14&&CR&Please wait, Opening Door #%resp% . . .*) mcavail(N) zap(tagtmp.%node%,%nv%totalTime%) appendto(tagtmp.%node%,%nv%totalfree%) Exit (80,DOOR|) *bsel loadsub(control\macros\badsel.ctl) goto (disp) *GOODBYE EnufSec(10) IfNotTrue(Goto(BSel)) LoadSub(CONTROL\MACROS\BYE.CTL) Goto(Disp) *MAIN LoadMem(CONTROL\MAIN.MNU) *HELP EnufSec(10) IfNotTrue(Goto(BSel)) Display(display\help\door,/:SEC/) Log (--,Viewed Doors Menu Help) Goto (Disp) *EXP LoadSub(CONTROL\MACROS\EXPERT.CTL) Goto(Disp) *DOOR16 LoadSub(DOORS\VOTE\VOTE.CTL) Goto(Disp) *DOOR17 LoadSub(DOORS\TV\TRIV.CTL) Goto(Disp) *SL0 LoadSub(CONTROL\MACROS\VIEWSCR.CTL) Goto(Disp) *pbr loadsub(doors\pbreg\pbreg.ctl) goto (disp) *twg view(\fd\mark.asc) goto (disp) *bbs loadsub(doors\bbs\bbs.ctl) goto(disp) SCR4CTLHSay(&3&-USER #%VAR%Y: [&15&\:NAME\&3&]-) SAY(&7&(&12&1&7&) &7&Flag 39 &14&\:FL39\ &7&(&12&12&7&) Flag 50 &14&\:FL50\ &7&(&12&23&7&) Flag 61 &14&\:FL61\ &7&(&12&34&7&) Flag 72 &14&\:FL72\ &7&(&12&45&7&) Flag 83 &14&\:FL83\) SAY(&7&(&12&2&7&) &7&Flag 40 &14&\:FL40\ &7&(&12&13&7&) Flag 51 &14&\:FL51\ &7&(&12&24&7&) Flag 62 &14&\:FL62\ &7&(&12&35&7&) Flag 73 &14&\:FL73\ &7&(&12&46&7&) Flag 84 &14&\:FL84\) SAY(&7&(&12&3&7&) &7&Flag 41 &14&\:FL41\ &7&(&12&14&7&) Flag 52 &14&\:FL52\ &7&(&12&25&7&) Flag 63 &14&\:FL63\ &7&(&12&36&7&) Flag 74 &14&\:FL74\ &7&(&12&47&7&) Flag 85 &14&\:FL85\) SAY(&7&(&12&4&7&) &7&Flag 42 &14&\:FL42\ &7&(&12&15&7&) Flag 53 &14&\:FL53\ &7&(&12&26&7&) Flag 64 &14&\:FL64\ &7&(&12&37&7&) Flag 75 &14&\:FL75\ &7&(&12&48&7&) Flag 86 &14&\:FL86\) SAY(&7&(&12&5&7&) &7&Flag 43 &14&\:FL43\ &7&(&12&16&7&) Flag 54 &14&\:FL54\ &7&(&12&27&7&) Flag 65 &14&\:FL65\ &7&(&12&38&7&) Flag 76 &14&\:FL76\ &7&(&12&49&7&) Flag 87 &14&\:FL87\) SAY(&7&(&12&6&7&) &7&Flag 44 &14&\:FL44\ &7&(&12&17&7&) Flag 55 &14&\:FL55\ &7&(&12&28&7&) Flag 66 &14&\:FL66\ &7&(&12&39&7&) Flag 77 &14&\:FL77\) SAY(&7&(&12&7&7&) &7&Flag 45 &14&\:FL45\ &7&(&12&18&7&) Flag 56 &14&\:FL56\ &7&(&12&29&7&) Flag 67 &14&\:FL67\ &7&(&12&40&7&) Flag 78 &14&\:FL78\) SAY(&7&(&12&8&7&) &7&Flag 46 &14&\:FL46\ &7&(&12&19&7&) Flag 57 &14&\:FL57\ &7&(&12&30&7&) Flag 68 &14&\:FL68\ &7&(&12&41&7&) Flag 79 &14&\:FL79\) SAY(&7&(&12&9&7&) &7&Flag 47 &14&\:FL47\ &7&(&12&20&7&) Flag 58 &14&\:FL58\ &7&(&12&31&7&) Flag 69 &14&\:FL69\ &7&(&12&42&7&) Flag 80 &14&\:FL80\) SAY(&7&(&12&10&7&) &7&Flag 48 &14&\:FL48\ &7&(&12&21&7&) Flag 59 &14&\:FL59\ &7&(&12&32&7&) Flag 70 &14&\:FL70\ &7&(&12&43&7&) Flag 81 &14&\:FL81\) SAY(&7&(&12&11&7&) &7&Flag 49 &14&\:FL49\ &7&(&12&22&7&) Flag 60 &14&\:FL60\ &7&(&12&33&7&) Flag 71 &14&\:FL71\ &7&(&12&44&7&) Flag 82 &14&\:FL82\) return ONHELPCT_m;Online Help Database ;Programmed for Powerboard World Support BBS ;Programmed by Doug Vermes, 12/29/93 *Disp Say(&CR&&12&The Online Help is Temporarily Offline As it is Being Updated.) Say(Thank you for understanding.&CR&) Goto(Main) SetActivity (Main Menu) ;if(/:EXPERT/)=(Y) then linefeed(1) ;if(/:EXPERT/)=(Y) then Goto (Prompt) *sdisp Display (onhelp\onhelp2) *Prompt SetEqual(a=) Say(&15&Time Remaining: &14&%LEFT% &15&minutes.) MenuAsk(&3&Online Help Selection or Keyword to Search For? &12&*) *Check BigIf (G:BYE,?:SDISP,Q:MAIN,1:REG,2:PERFORM,3:MULTI,4:PBC,5:ZC,6:COMM,7:DISPHLP,8:CDROM,9:LOGON,10:PM) BigIf (11:EVENT,12:FILES,13:MEM,14:HARDWARE,15:SOFTWARE,16:MSGAREA,17:PHONENUMS,18:SYSREQS,19:TECHSPECS,20:DLUPDATES) Goto(Keyword) Jump (bsel) Goto(Disp) *KeyWord SetEqual(c=1) ;%VAR%C will be a counter var SetEqual(d=1) ;%VAR%D will be a clone var used for screen pausing MenuEqual(q=%RESP%) ;%VAR%Q stores Keyword Being Searched For Seek(onhelp\list.txt) IfNotTrue(Goto(Disp)) ClearScr Say(&CR&&14&Keyword Search for: &12&%VAR%Q) Say(&CR&&11 &12&HELP SECTION) Say(&7&-------------------------------------------------------------------------) InpOpen(Onhelp\list.txt) Do InpRead SetEqual(r=%ARESP%) ;%VAR%R stores filename temporarily SeekFile(ONHELP\%VAR%R,%VAR%Q) IfTrue(Jump(SetAndInc)) EofLoop *FinishUp InpClose *GetPrompt MenuAsk(&3&Help Section to View (Q to Quit): &14&*) If(%RESP%)=(Q) then Goto(Main) Number(%RESP%) IfNotTrue(goto(GetPrompt)) CmpVal(%RESP%,%VAR%C) IfNotTrue(Goto(InvSection)) Display(ONHELP\^:%RESP%^) Goto(Disp) *SetAndInc SetEqual(^%VAR%C=%VAR%R) ;Say(&3&%VAR%C: &12&%VAR%R*) Say(&3&%VAR%C: &12&*) SetEqual(/NDX=ONHELP\ONHELP.NDX) SeekUser(%VAR%R) IfTrue(Say(%NDFROM%)) IfNotTrue(Say(%VAR%R)) Inc(c) Inc(d) CmpVal(%VAR%D,/:SCREENLEN/) IfTrue(ret) Setequal(d=1) PausePrompt If(%ARESP%)=(STOP) then Goto(FinishUp) Ret *InvSection Beep(1) Say(&12&Invalid Choice!) Secpause(1) Goto(GetPrompt) *MAIN ;EnufSec(10) ;IfNotTrue(Goto(BSel)) LoadMem(CONTROL\MAIN.MNU) *BYE EnufSec(10) IfNotTrue(Goto(BSel)) LoadSub(CONTROL\MACROS\BYE.CTL) Goto(Disp) *REG LoadSub(CONTROL\ONREG.CTL) ;Display(ONHELP\REG) ;Enter Goto(Disp) *EVENT Display(ONHELP\EVENT) ;Enter Goto(Disp) *LOGON Display(ONHELP\LOGON) Goto(Disp) *PERFORM Display(ONHELP\PERFORM) Goto(Disp) *FILES Display(ONHELP\FILES) Goto(Disp) *MEM Display(ONHELP\MEMORY) Goto(Disp) *COMM LoadSub(CONTROL\ONCOMM.CTL) ;Display(ONHELP\COMM) Goto(Disp) *DISPHLP Display(ONHELP\DISP) Goto(Disp) *CDROM Display(ONHELP\CDROM) Goto(Disp) *PM Display(ONHELP\PM) Goto(Disp) *MULTI *Msdisp Display(ONHELP\MULTHELP) *MPrompt SetEqual(a=) Say(&15&Time Remaining: &14&%LEFT% &15&minutes.) MenuAsk(&3&Online Help Selection? &12&*) *MCheck BigIf (G:BYE,?:MSDISP,R:SDISP,Q:MAIN,1:INTERNODE,2:ONENODE) Jump (bsel) Goto(MsDisp) *INTERNODE Display(ONHELP\INTERNOD) Goto(MSDisp) *ONENODE Display(ONHELP\ONENODE) Goto(MSDisp) *PBC *PBCSdisp Display(ONHELP\PBCHELP) *PBCPrompt SetEqual(a=) Say(&15&Time Remaining: &14&%LEFT% &15&minutes.) MenuAsk(&3&Online Help Selection? &12&*) *PBCCheck BigIf (G:BYE,?:PBCSDISP,R:SDISP,Q:MAIN,1:NONSTAND,2:TABCHG,3:EXITSAVE,4:NOEFFECT,5:BASIC) Jump (bsel) Goto(PBCSdisp) *NONSTAND Display(ONHELP\NONSTAND) Goto(PBCSDisp) *TABCHG Display(ONHELP\TABCHG) Goto(PBCSDisp) *EXITSAVE Display(ONHELP\EXITSAVE) Goto(PBCSDisp) *NOEFFECT Display(ONHELP\NOEFFECT) Goto(PBCSDisp) *BASIC Display(ONHELP\BASIC) Goto(PBCSDisp) *ZC LoadMem(Control\onzc.ctl) *HARDWARE *HSdisp Display(ONHELP\HARDWARE) *HPrompt SetEqual(a=) Say(&15&Time Remaining: &14&%LEFT% &15&minutes.) MenuAsk(&3&Online Help Selection? &12&*) *HCheck BigIf (G:BYE,?:HSDISP,R:SDISP,Q:MAIN,1:TANDY,2:ZOOM,3:MITSUMI,4:ORCHID) Jump (bsel) Goto(HSDisp) *TANDY Display(ONHELP\TANDY) Goto(HSDisp) *ZOOM Display(ONHELP\ZOOM) Goto(HSDisp) *MITSUMI Display(ONHELP\MITSUMI) Goto(HSDisp) *ORCHID Display(ONHELP\ORCHID) Goto(HSDisp) *SOFTWARE LoadMem(CONTROL\ONSOFT.CTL) *MSGAREA LoadMem(CONTROL\ONMSG.CTL) *TECHSPECS Display(ONHELP\TECHSPECS) Goto(Disp) *PHONENUMS Display(ONHELP\PHONES) Goto(Disp) *DLUPDATES Display(ONHELP\DLUPDATE) Goto(Disp) *SYSREQS Display(ONHELP\SYSREQS) Goto(Disp) *bSel LoadSub(control\macros\badsel.ctl) ;invalid selection ;Goto (disp) Ret ONFILECTLú;File-Related *SSdisp Display(ONHELP\ONFILE) *SPrompt SetEqual(a=) Say(&15&Time Remaining: &14&%LEFT% &15&minutes.) MenuAsk(&3&Online Help Selection? &12&*) *SCheck BigIf (G:BYE,?:SSDISP,R:SDISP,Q:MAIN,1:CANTMOVE,2:FREEZES,3:NOTRANSFER) Jump (bsel) Goto(SSDisp) *CANTMOVE Display(ONHELP\FILES) Goto(SSDisp) *FREEZES Display(ONHELP\IRQ) Goto(SSDisp) *NOTRANSFER Display(ONHELP\NOTRANS) Goto(SSDisp) *SDISP Return ;LoadMem(Control\ONHELP.CTL,Goto(SDisp)) *MAIN ;LoadMem(Control\MAIN.MNU) SetEqual(/RESP=QUITTING) Return *bSel LoadSub(control\macros\badsel.ctl) ;invalid selection Goto (ssdisp) ;Ret ONGENCTLù*GCSdisp Display(ONHELP\ONGEN) *GCPrompt SetEqual(a=) Say(&15&Time Remaining: &14&%LEFT% &15&minutes.) MenuAsk(&3&Online Help Selection? &12&*) *GCCheck BigIf (G:BYE,?:GCSDISP,R:SDISP,Q:MAIN,1:ADDENDUM,2:FLAGS,3:UUPB) Jump (bsel) Goto(GCSDisp) *ADDENDUM Display(ONHELP\ADDENDUM) Goto(GCSDisp) *FLAGS Display(ONHELP\FLAGS) Goto(GCSDisp) *UUPB Display(ONHELP\UUPB) Goto(GCSDisp) *MAIN ; LoadMem(Control\MAIN.MNU) SetEqual(/RESP=QUITTING) Return *bSel LoadSub(control\macros\badsel.ctl) ;invalid selection Goto (gCsdisp) ;Ret *SDISP Return ;LoadMem(Control\ONHELP.CTL,Goto(SDisp)) ONHARDCTL«*HARDWARE *HSdisp Display(ONHELP\HARDWARE) *HPrompt SetEqual(a=) Say(&15&Time Remaining: &14&%LEFT% &15&minutes.) MenuAsk(&3&Online Help Selection? &12&*) *HCheck BigIf (G:BYE,?:HSDISP,R:SDISP,Q:MAIN,1:TANDY,2:ZOOM,3:MITSUMI,4:ORCHID) Jump (bsel) Goto(HSDisp) *TANDY Display(ONHELP\TANDY) Goto(HSDisp) *ZOOM Display(ONHELP\ZOOM) Goto(HSDisp) *MITSUMI Display(ONHELP\MITSUMI) Goto(HSDisp) *ORCHID Display(ONHELP\ORCHID) Goto(HSDisp) *SDISP Return *MAIN ;LoadMem(Control\MAIN.MNU) SetEqual(/RESP=QUITTING) Return *bSel LoadSub(control\macros\badsel.ctl) ;invalid selection Goto (Hsdisp) ;Ret ONHELPCTL);Online Help Database ;Programmed for Powerboard World Support BBS ;Programmed by Doug Vermes, 12/29/93 *Disp SetActivity (Main Menu) ;if(/:EXPERT/)=(Y) then linefeed(1) ;if(/:EXPERT/)=(Y) then Goto (Prompt) *sdisp clearscr Display (onhelp\onhelp3) *Prompt SetEqual(a=) Say(&15&Time Remaining: &14&%LEFT% &15&minutes.) MenuAsk(&3&Online Help Selection or Keyword to Search For? &12&*) *Check Bigif (G:BYE,?:SDISP,Q:MAIN) ;Bigif (G:BYE,?:SDISP,Q:MAIN,1:REG,7:EVENT,8:FILES,13:MULTI,14:PBC,16:PWRMAIL,12:MISC,21:ZC,4:COMM,9:HARDWARE,19:SOFTWARE,11:MSGAREA,26:UPGRADEQS,6:DOORS,20:SPECIFIC) ;BELOW ARE FOR SUB-MENUS If(%RESP%)=(1) then SetEqual(n=ONREG) If(%RESP%)=(2) then SetEqual(n=ONGEN) If(%RESP%)=(4) then SetEqual(n=ONCOMM) If(%RESP%)=(6) then SetEqual(n=ONDOORS) If(%RESP%)=(7) then SetEqual(n=ONEVENT) If(%RESP%)=(8) then SetEqual(n=ONFILE) If(%RESP%)=(9) then SetEqual(n=ONHARD) If(%RESP%)=(11) then SetEqual(n=ONMSG) If(%RESP%)=(12) then SetEqual(n=ONMISC) If(%RESP%)=(13) then SetEqual(n=ONMULTI) If(%RESP%)=(14) then SetEqual(n=ONPBC) If(%RESP%)=(16) then SetEqual(n=ONPM) If(%RESP%)=(19) then SetEqual(n=ONSOFT) If(%RESP%)=(20) then SetEqual(n=ONSPEC) If(%RESP%)=(21) then SetEqual(n=ONZC) If(%RESP%)=(26) then SetEqual(n=ONUPGRD) ;BELOW ARE FOR ONE-SCREEN HELPS If(%RESP%)=(3) then SetEqual(n=CDROM) If(%RESP%)=(5) then SetEqual(n=DISP) If(%RESP%)=(10) then SetEqual(n=MEMORY) If(%RESP%)=(15) then SetEqual(n=PERFORM) If(%RESP%)=(17) then SetEqual(n=PBLOAD) If(%RESP%)=(18) then SetEqual(n=LOGON) If(%RESP%)=(22) then SetEqual(n=PHONES) If(%RESP%)=(23) then SetEqual(n=DLUPDATE) If(%RESP%)=(24) then Setequal(n=SYSREQS) if(%RESP%)=(25) then SetEqual(n=TECHSPECS) If(%RESP%)=(27) then SetEqual(n=REGUPG) Number(%RESP%) IfTrue(Goto(Generic)) ;BigIf (G:BYE,?:SDISP,Q:MAIN,1:REG,2:PERFORM,3:MULTI,4:PBC,5:ZC,6:COMM,7:DISPHLP,8:CDROM,9:LOGON,10:PM) ;BigIf (11:EVENT,12:FILES,13:MEM,14:HARDWARE,15:SOFTWARE,16:MSGAREA,17:PHONENUMS,18:SYSREQS,19:TECHSPECS,20:DLUPDATES) ;BigIf (21:PBLOAD) Goto(Keyword) Jump (bsel) Goto(Disp) *KeyWord SetEqual(c=1) ;%VAR%C will be a counter var SetEqual(d=1) ;%VAR%D will be a clone var used for screen pausing MenuEqual(q=%RESP%) ;%VAR%Q stores Keyword Being Searched For Seek(onhelp\list.txt) IfNotTrue(Goto(Disp)) ClearScr Say(&CR&&14&Keyword Search for: &12&%VAR%Q) Say(&CR&&11 &12&HELP SECTION) Say(&7&-------------------------------------------------------------------------) InpOpen(Onhelp\list.txt) Say(&15&\*) Do Back(1) Say(&15&\*) InpRead Back(1) Say(|*) SetEqual(r=%ARESP%) Back(1) Say(/*) ;%VAR%R stores filename temporarily SeekFile(ONHELP\%VAR%R,%VAR%Q) Back(1) Say(-*) IfTrue(Jump(SetAndInc)) EofLoop *FinishUp InpClose Back(1) *GetPrompt MenuAsk(&3&Help Section to View (Q to Quit): &14&*) If(%RESP%)=(Q) then Goto(Main) Number(%RESP%) IfNotTrue(goto(GetPrompt)) CmpVal(%RESP%,%VAR%C) IfNotTrue(Goto(InvSection)) SetEqual(x=%RESP%) Find(^:x^,.) If(%ARESP%)=(0) then Goto(NoExten) AddVar(%ARESP%+-1=u) Get(^:x^,1,%VAR%U) Display(ONHELP\%ARESP%) Goto(Disp) *SetAndInc SetEqual(^%VAR%C=%VAR%R) Back(1) ;Say(&3&%VAR%C: &12&%VAR%R*) Say(&3&%VAR%C: &12&*) SetEqual(/NDX=ONHELP\ONHELP.NDX) SeekUser(%VAR%R) IfTrue(Say(%NDFROM%)) IfNotTrue(Say(%VAR%R)) Inc(c) Inc(d) CmpVal(%VAR%D,/:SCREENLEN/) IfTrue(ret) Setequal(d=1) PausePrompt If(%ARESP%)=(STOP) then Goto(FinishUp) Ret *InvSection Beep(1) Say(&12&Invalid Choice!) Secpause(1) Goto(GetPrompt) *MAIN ;EnufSec(10) ;IfNotTrue(Goto(BSel)) ;LoadMem(CONTROL\MAIN.MNU) Return *BYE EnufSec(10) IfNotTrue(Goto(BSel)) LoadSub(CONTROL\MACROS\BYE.CTL) Goto(Disp) *GENERIC Seek(CONTROL\%VAR%N.CTL) IfTrue(Goto(LoadCTL)) Display(ONHELP\%VAR%N) Goto(Disp) *LOADCTL LoadSub(CONTROL\%VAR%N.CTL) If(%RESP%)=(QUITTING) then Return Goto(Disp) *bSel LoadSub(control\macros\badsel.ctl) ;invalid selection ;Goto (disp) Ret *NOEXTEN Display(ONHELP\^:%RESP%^) Goto(disp) ONMISCCTLt;Miscellaneous PB-Related Program Problems *SSdisp Display(ONHELP\ONMISC) *SPrompt SetEqual(a=) Say(&15&Time Remaining: &14&%LEFT% &15&minutes.) MenuAsk(&3&Online Help Selection? &12&*) *SCheck BigIf (G:BYE,?:SSDISP,R:SDISP,Q:MAIN,1:CBV,2:PCLPROG) Jump (bsel) Goto(SSDisp) *CBV Display(ONHELP\CBV) Goto(SSDisp) *PCLPROG Display(ONHELP\PCLPROG) Goto(SSDisp) *SDISP Return ;LoadMem(Control\ONHELP.CTL,Goto(SDisp)) *MAIN ;LoadMem(Control\MAIN.MNU) SetEqual(/RESP=QUITTING) Return *bSel LoadSub(control\macros\badsel.ctl) ;invalid selection Goto (SSdisp) ;Ret ONMSGCTL/;MsgArea *MSdisp Display(ONHELP\MSGAREA) *MPrompt SetEqual(a=) Say(&15&Time Remaining: &14&%LEFT% &15&minutes.) MenuAsk(&3&Online Help Selection? &12&*) *MCheck BigIf (G:BYE,?:MSDISP,R:MDISP,Q:MAIN,1:NEWAREAS,2:ADDAREAS) Jump (bsel) Goto(MSDisp) *NEWAREAS Display(ONHELP\MSGPROBS) Goto(MSDisp) *MDISP Return ;LoadMem(Control\ONHELP.CTL,Goto(SDisp)) *MAIN ;LoadMem(Control\MAIN.MNU) SetEqual(/RESP=QUITTING) Return *bSel LoadSub(control\macros\badsel.ctl) ;invalid selection Goto (mSdisp) ;Ret ONMULTICTLn;Multinode Problems *SSdisp Display(ONHELP\MULTHELP) *SPrompt SetEqual(a=) Say(&15&Time Remaining: &14&%LEFT% &15&minutes.) MenuAsk(&3&Online Help Selection? &12&*) *SCheck BigIf (G:BYE,?:SSDISP,R:SDISP,Q:MAIN,1:INTERNOD,2:ONENODE) Jump (bsel) Goto(SSDisp) *INTERNOD Display(ONHELP\INTERNOD) Goto(SSDisp) *ONENODE Display(ONHELP\ONENODE) Goto(SSDisp) *SDISP Return ;LoadMem(Control\ONHELP.CTL,Goto(SDisp)) *MAIN ;LoadMem(Control\MAIN.MNU) SetEqual(/RESP=QUITTING) Return *bSel LoadSub(control\macros\badsel.ctl) ;invalid selection Goto (ssdisp) ;Ret ONPBCCTL*PBC *PBCSdisp Display(ONHELP\PBCHELP) *PBCPrompt SetEqual(a=) Say(&15&Time Remaining: &14&%LEFT% &15&minutes.) MenuAsk(&3&Online Help Selection? &12&*) *PBCCheck BigIf (G:BYE,?:PBCSDISP,R:SDISP,Q:MAIN,1:NONSTAND,2:TABCHG,3:EXITSAVE,4:NOEFFECT,5:BASIC) Jump (bsel) Goto(PBCSdisp) *NONSTAND Display(ONHELP\NONSTAND) Goto(PBCSDisp) *TABCHG Display(ONHELP\TABCHG) Goto(PBCSDisp) *EXITSAVE Display(ONHELP\EXITSAVE) Goto(PBCSDisp) *NOEFFECT Display(ONHELP\NOEFFECT) Goto(PBCSDisp) *BASIC Display(ONHELP\BASIC) Goto(PBCSDisp) *SDISP Return *MAIN ;LoadMem(Control\MAIN.MNU) SetEqual(/RESP=QUITTING) Return *bSel LoadSub(control\macros\badsel.ctl) ;invalid selection Goto (pbcsdisp) ;Ret ONPMCTLh;PowerMail Problems and Questions *SSdisp Display(ONHELP\ONPM) *SPrompt SetEqual(a=) Say(&15&Time Remaining: &14&%LEFT% &15&minutes.) MenuAsk(&3&Online Help Selection? &12&*) *SCheck BigIf (G:BYE,?:SSDISP,R:SDISP,Q:MAIN,1:FREEZE,2:PMZIP) Jump (bsel) Goto(SSDisp) *FREEZE Display(ONHELP\PM) Goto(SSDisp) *PMZIP Display(ONHELP\PMZIP) Goto(SSDisp) *SDISP Return ;LoadMem(Control\ONHELP.CTL,Goto(SDisp)) *MAIN ;LoadMem(Control\MAIN.MNU) SetEqual(/RESP=QUITTING) Return *bSel LoadSub(control\macros\badsel.ctl) ;invalid selection Goto (ssdisp) ;Ret ONREGCTL═;Registration *SSdisp Display(ONHELP\REGMENU) *SPrompt SetEqual(a=) Say(&15&Time Remaining: &14&%LEFT% &15&minutes.) MenuAsk(&3&Online Help Selection? &12&*) *SCheck BigIf (G:BYE,?:SSDISP,R:SDISP,Q:MAIN,1:WHY,2:HOWMUCH,3:HOW,4:ACCESS) Jump (bsel) Goto(SSDisp) *WHY Display(ONHELP\REGWHY) Goto(SSDisp) *HOWMUCH Display(ONHELP\REGCOST) Goto(SSDisp) *HOW Display(ONHELP\REGHOW) Goto(SSDisp) *ACCESS Display(ONHELP\REGSYS) Goto(SSDisp) *SDISP Return ;LoadMem(Control\ONHELP.CTL,Goto(SDisp)) *MAIN ;LoadMem(Control\MAIN.MNU) SetEqual(/RESP=QUITTING) Return *bSel LoadSub(control\macros\badsel.ctl) ;invalid selection Goto (ssdisp) ;Ret ONSOFTCTL;Software *SSdisp Display(ONHELP\SOFTWARE) *SPrompt SetEqual(a=) Say(&15&Time Remaining: &14&%LEFT% &15&minutes.) MenuAsk(&3&Online Help Selection? &12&*) *SCheck BigIf (G:BYE,?:SSDISP,R:SDISP,Q:MAIN,1:DBLSPACE,2:STACKER,3:CACHE,4:PKZIP,5:SCAN,6:SILVERNET,7:SHARE,8:DOORS,9:DESQVIEW) Jump (bsel) Goto(SSDisp) *DBLSPACE Display(ONHELP\DBLSPACE) Goto(SSDisp) *STACKER Display(ONHELP\STACKER) Goto(SSDisp) *CACHE Display(ONHELP\CACHE) Goto(SSDisp) *PKZIP Display(ONHELP\PKZIP) Goto(SSDisp) *SCAN Display(ONHELP\SCAN) Goto(SSDisp) *SILVERNET Display(ONHELP\SILVRNET) Goto(SSDisp) *SHARE Display(ONHELP\SHARE) Goto(SSDisp) *DOORS Display(ONHELP\DOORS) Goto(SSDisp) *DESQVIEW Display(ONHELP\DVCOMM) Goto(SSDisp) *SDISP Return ;LoadMem(Control\ONHELP.CTL,Goto(SDisp)) *MAIN ;LoadMem(Control\MAIN.MNU) SetEqual(/RESP=QUITTING) Return *bSel LoadSub(control\macros\badsel.ctl) ;invalid selection Goto (ssdisp) ;Ret ONSPECCTL_;Specific Errors *SSdisp Display(ONHELP\ONSPEC) *SPrompt SetEqual(a=) Say(&15&Time Remaining: &14&%LEFT% &15&minutes.) MenuAsk(&3&Online Help Selection? &12&*) *SCheck BigIf (G:BYE,?:SSDISP,R:SDISP,Q:MAIN,1:EVENT,2:INSHELL) Jump (bsel) Goto(SSDisp) *EVENT Display(ONHELP\EVENT) Goto(SSDisp) *INSHELL Display(ONHELP\INSHELL) Goto(SSDisp) *SDISP Return ;LoadMem(Control\ONHELP.CTL,Goto(SDisp)) *MAIN ;LoadMem(Control\MAIN.MNU) SetEqual(/RESP=QUITTING) Return *bSel LoadSub(control\macros\badsel.ctl) ;invalid selection Goto (ssdisp) ;Ret ONUPGRDCTLh;Upgrade Questions *SSdisp Display(ONHELP\ONUPGRD) *SPrompt SetEqual(a=) Say(&15&Time Remaining: &14&%LEFT% &15&minutes.) MenuAsk(&3&Online Help Selection? &12&*) *SCheck BigIf (G:BYE,?:SSDISP,R:SDISP,Q:MAIN,1:UPHIGHER,2:UPSAVE) Jump (bsel) Goto(SSDisp) *UPHIGHER Display(ONHELP\UPHIGHER) Goto(SSDisp) *UPSAVE Display(ONHELP\UPSAVE) Goto(SSDisp) *SDISP Return ;LoadMem(Control\ONHELP.CTL,Goto(SDisp)) *MAIN ;LoadMem(Control\MAIN.MNU) SetEqual(/RESP=QUITTING) Return *bSel LoadSub(control\macros\badsel.ctl) ;invalid selection Goto (ssdisp) ;Ret ONZCCTL╤*ZCSdisp Display(ONHELP\ZCHELP) *ZCPrompt SetEqual(a=) Say(&15&Time Remaining: &14&%LEFT% &15&minutes.) MenuAsk(&3&Online Help Selection? &12&*) *ZCCheck BigIf (G:BYE,?:ZCSDISP,R:SDISP,Q:MAIN,1:DIRS,2:VIRUS,3:SCAN) Jump (bsel) Goto(ZCSDisp) *DIRS Display(ONHELP\DIRS) Goto(ZCSDisp) *VIRUS Display(ONHELP\VIRUS) Goto(ZCSDisp) *SCAN Display(ONHELP\SCAN) Say( &15&Download SHROM20A.ZIP? &12&[ ]&14&*) Back(4) YesNoAsk() If(%RESP%)=(No) then Goto(ZCSDisp) if (/lastmsg)=(1) then goto (conting) *AbandonConf LoadSub(control\onaband.ctl) NotIf(%RESP%)=(23) then goto(ZCSDisp) ;; if returns error SetEqual(r=SHROM20A.ZIP) LoadSub(CONTROL\ONDOWN.CTL) Goto(ZCSDisp) *MAIN ; LoadMem(Control\MAIN.MNU) SetEqual(/RESP=QUITTING) Return *bSel LoadSub(control\macros\badsel.ctl) ;invalid selection Goto (zcsdisp) *SDISP Return ;LoadMem(Control\ONHELP.CTL,Goto(SDisp)) UED1CTL&loadsub(control\exitwip.ctl) NUMBUSERS SETEQUAL(G=%ARESP%) If(%nv%editor%)<>() then Goto(MSGSEARCH) SetEqual(/nveditor=) If(/:GRAPHICS/)=(ASCII) then Goto(NoASCII) SETEQUAL(Z=0) IF (/GRAPHICS)=(ANSI) THEN SETEQUAL(Z=1) SETEQUAL(C=0) SETEQUAL(Y=1) SETEQUAL(S=1) ClearScr SetEqual(l=1) *DOUSER Jump(ClearTop) LOADUSER(%VAR%Y) jump (mainbox) *MainBox2 AnsiGoto(1,1) LoadSub(control\scr%VAR%L.ctl) *Loopy Jump(WhereCheck) MenuKey(%CRON%) ASCII If(%ARESP%)=(27) then NotIf(%BAUD%)=(LOCAL) then goto(akey) ;remote arrow keys have a different detection routine If(%ARESP%)=(27) then ;this is the local arrow key detection routine Get(%RESP%,2,1) If(%ARESP%)=([) then Get(%RESP%,3,1) If(%ARESP%)=(D) then SetEqual(/RESP=-) ;left arrow If(%ARESP%)=(C) then SetEqual(/RESP=+) ;right arrow If(%ARESP%)=(A) then SetEqual(/RESP=8) ;up arrow If(%ARESP%)=(B) then SetEqual(/RESP=2) ;down arrow endif endif *MoreChecking If(%ARESP%)=(P) then SetEqual(/RESP=2) ;down arrow If(%ARESP%)=(H) then SetEqual(/RESP=8) ;up arrow If(%ARESP%)=(K) then SetEqual(/RESP=+) ;left arrow If(%ARESP%)=(M) then SetEqual(/RESP=-) ;right arrow endif If(%ARESP%)=(0) then Get(%RESP%,2,1) If(%ARESP%)=(P) then SetEqual(/RESP=2) ;down arrow If(%ARESP%)=(H) then SetEqual(/RESP=8) ;up arrow If(%ARESP%)=(K) then SetEqual(/RESP=+) ;left arrow If(%ARESP%)=(M) then SetEqual(/RESP=-) ;right arrow endif If(%RESP%)=(2) then Jump(NormCheck) AddVar(%VAR%S+1=s) If(%VAR%S)=(6) then SetEqual(s=1) endif If(%RESP%)=(8) then Jump(NormCheck) AddVar(%VAR%S+-1=s) If(%VAR%S)=(0) then SetEqual(s=5) endif if(%resp%)=(/) then setequal(/resp=+) If(%RESP%)=(+) then AddVar(%VAR%L+1=l) If(%VAR%L)=(5) then Setequal(l=1) Jump(ClearTop) Goto(MainBox2) endif if(%RESP%)=(F) then Setequal(y=1) Jump(ClearTop) loaduser(%var%y) Goto(mainbox2) endif If(%RESP%)=(L) then SetEqual(y=%VAR%G) Jump(ClearTop) loaduser(%var%y) Goto(mainbox2) endif If(%RESP%)=(-) then AddVar(%VAR%L+-1=l) If(%VAR%L)=(0) then SetEqual(l=4) Jump(ClearTop) Goto(MainBox2) endif If(%RESP%)=(Q) then goto (doret) NotIf(%RESP%)=(<CR>) then Goto(Loopy) If(%VAR%s)=(1) then Jump(CKSave) Inc(y) jump (cleartop) loaduser(%var%y) Jump(mainbox) Goto(mainbox2) Endif If(%VAR%s)=(2) then Jump(CKSave) AddVar(%VAR%Y+-1=y) jump (cleartop) loaduser(%var%y) Jump(mainbox) Goto(mainbox2) Endif CmpVal(0,%VAR%Y) IfNotTrue(SetEqual(y=1)) CmpVal(%VAR%Y,%VAR%G) IfNotTrue(SetEqual(y=%VAR%G)) If(%VAR%s)=(5) then goto (doret) If(%VAR%s)=(1) then Goto(DOUser) If(%VAR%s)=(2) then Goto(DOUser) LoadSub(control\ued.ctl) Goto(DoUser) *WhereCheck If(%VAR%S)=(1) then AnsiGoto(34,18) Say($7$&12&Next User$0$*) endif If(%VAR%S)=(2) then AnsiGoto(32,19) Say($7$&12&Previous User$0$*) endif If(%VAR%S)=(3) then AnsiGoto(33,20) Say($7$&12&Edit User$0$*) endif If(%VAR%S)=(4) then AnsiGoto(31,21) Say($7$&12&Search For User$0$*) endif If(%VAR%S)=(5) then AnsiGoto(29,22) Say($7$&12&Quit to Sysop Menu$0$*) endif Ret *NormCheck If(%VAR%S)=(1) then AnsiGoto(34,18) Say($0$&15&Next User*) endif If(%VAR%S)=(2) then AnsiGoto(32,19) Say($0$&15&Previous User*) endif If(%VAR%S)=(3) then AnsiGoto(33,20) Say($0$&15&Edit User*) endif If(%VAR%S)=(4) then AnsiGoto(31,21) Say($0$&15&Search For User*) endif If(%VAR%S)=(5) then AnsiGoto(29,22) Say($0$&15&Quit to Sysop Menu*) endif Ret *CKSAVE NOTIF (&C)=(1) THEN RET AnsiGoto(34,18) Say(&0&Next User*) AnsiGoto(32,19) Say(Previous User*) AnsiGoto(33,20) Say(Edit User*) AnsiGoto(31,21) Say(Search For User*) AnsiGoto(29,22) Say(Quit to Sysop Menu*) AnsiGoto(3,19) Say([UP] = Move Up*) AnsiGoto(3,20) Say([DN] = Move Down*) AnsiGoto(53,18) Say([RT] = Next Screen*) AnsiGoto(53,19) Say([LT] = Previous Screen*) AnsiGoto(53,21) Say(F = First User*) AnsiGoto(53,22) Say(L = Last User*) AnsiGoto(3,21) Say((ENTER) Selects*) AnsiGoto(30,20) yesnoask(&15&Save Changes? &14&*) if (%name%)=(Roland Baroni) then goto (passS) if (%RESP%)=(Yes) THEN SAVEUSER(%VAR%Y) *passs if (%RESP%)=(No) then SetEqual(c=0) AnsiGoto(30,20) say(&15& *) RET *ClearTop AnsiGoto(1,1) Eline(80) LineFeed(1) Eline(80) LineFeed(1) Eline(80) LineFeed(1) Eline(80) LineFeed(1) Eline(80) LineFeed(1) Eline(80) LineFeed(1) Eline(80) LineFeed(1) Eline(80) LineFeed(1) Eline(80) LineFeed(1) Eline(80) LineFeed(1) Eline(80) LineFeed(1) Eline(80) LineFeed(1) Eline(80) LineFeed(1) Eline(80) LineFeed(1) Eline(80) LineFeed(1) Eline(80) Ret *MainBox AnsiGoto(1,17) Say (&4&╔═══════════════════════════════════════════════════════════════════════════╗) Say (║ ║) Say (║ ║) Say (║ ║) Say (║ ║) Say (║ ║) Say (╚═══════════════════════════════════════════════════════════════════════════╝*) AnsiGoto(34,18) Say(&15&Next User*) AnsiGoto(32,19) Say(Previous User*) AnsiGoto(33,20) Say(Edit User*) AnsiGoto(31,21) Say(Search For User*) AnsiGoto(29,22) Say(Quit to Sysop Menu*) AnsiGoto(3,19) Say(&7&[UP] = Move Up*) AnsiGoto(3,20) Say([DN] = Move Down*) AnsiGoto(3,21) Say((ENTER) Selects*) AnsiGoto(53,18) Say([RT] = Next Screen*) AnsiGoto(53,19) Say([LT] = Previous Screen*) AnsiGoto(53,21) Say(F = First User*) AnsiGoto(53,22) Say(L = Last User*) ;AnsiGoto(3,23) ;Say(&14&(NUM LOCK) Must Be On*) ret *NoASCII Say(&12&&CR&The Remote User Editor Requires ANSI Graphics to Function.&CR&) SecPause(1) goto (doret) *MSGSEARCH LoadSub(control\ued.ctl) If(%Nv%editor%)=(-1) then goto (doret) Goto(DOUSER) *AKEY ;remote arrow key detection routine MenuKey(%CRON%) If(%RESP%)=([) then MenuKey(%CRON%) If(%RESP%)=(D) then SetEqual(/RESP=-) ;left arrow If(%RESP%)=(C) then SetEqual(/RESP=+) ;right arrow If(%RESP%)=(A) then SetEqual(/RESP=8) ;up arrow If(%RESP%)=(B) then SetEqual(/RESP=2) ;down arrow endif Goto(MoreChecking) *doret flushout clearscr if (%nv%wipe%)=() then return setnv(wipe=) setnv(wipmode=1) return READLCTL'*help display(display\help\read,/:SEC/) goto (brmail) *Repeat SetEqual(/nvkilled=) ;%var%i will be counter for current element in user array ^:^ SetEqual(/nvselected=1) ;%nv%selected% is the array number of the message currently highlighted. ;i.e. ^:1^ may hold number msg #45, but a value of 1 for %nv%selected% ;means the line with msg #45 is currently highlighted. SetEqual(/nvlist=NORMAL) ;%nv%list% is the reason the following procedure is called. NORMAL is ;just a normal list of all the inbox messages that fit on the screen. ;REFRESH will refresh the current %VAR%I'th line. AddVar(/:SCREENLEN/+-5=q) If(&q)>=(19) then SetEqual(q=18) ; screen length cannot be >23 for inbox SetEqual(/nvscreenlen=%VAR%Q) SetEqual(/nvpage=0) ;Current page number of inbox messages SetEqual(i=1) SetEqual(/nvstart=1) ;starting i value for NORMAL display of inbox SetEqual(/nvselected=1) SetEqual(/nvkilled=NO) DO SetEqual(y=^:I^) If(&y)<>() then SetEqual(/nvmax=%VAR%I) If(&y)=(DELETED) then SetEqual(/nvkilled=YES) If(&y)=() then Goto(AfterLoop) Inc(i) ;Say(Incrementing... Now %VAR%I) LOOP *AfterLoop SetEqual(/nvtotmax=%NV%MAX%) If(%NV%KILLED%)=(Yes) then SetEqual(y=%NV%MAX%) AddVar(%VAR%Y+-1=y) SetEqual(/nvmax=%VAR%Y) endif SetEqual(/nvkilled=) SetEqual(i=1) SetEqual(y=^:1^) *Repeatme Goto(Header) *repeat2 ;If(^:I^)=() then Goto(Done) ;SetEqual(y=^:I^) SetEqual(w=1) ;Say(Getmail(%VAR%Y,,%VAR%W,t,sh) *) getmail(%VAR%Y,,%var%w,t,sh) ;Say( ARESP=%ARESP% *) SetEqual(r=%ARESP%) If(%ARESP%)<>(Yes) then If(%ARESP%)<>(DELETED) then Goto(LNext) ;Say(MSGNUMBER=%MSGNUMBER%) If(%MSGNUMBER%)=(0) then Goto (LNext) SetEqual(a=%MSGNUMBER%) SetLen(a=6) If(%NV%SCREEN%)=(REFRESH) then ;Mod(%VAR%Q,/:SCREENLEN/) AddVar(%VAR%I+-%NV%START%=h) AddVar(%VAR%H+4=h) ;1+offset of 4=5 AnsiGoto(1,%VAR%H) endif If(%NV%SELECTED%)=(%VAR%I) then Say($7$&0&*) If(%NV%SELECTED%)<>(%VAR%I) then Say($0$&7&*) Say(%VAR%A *) If(%NV%SELECTED%)=(%VAR%I) then Say($7$&4&*) If(%NV%SELECTED%)<>(%VAR%I) then Say($0$&12&*) If(%REPLIES%)=(REPLIES) then Say(R *) If(%REPLIES%)<>(REPLIES) then Say( *) If(%MSGRCVD%)<>(RECEIVED) then Say(N *) If(%MSGRCVD%)=(RECEIVED) then Say( *) If(%MSGATTACH%)=(Y) then Say(A *) If(%MSGATTACH%)<>(Y) then Say( *) If(%VAR%R)=(DELETED) then Say(D *) If(%VAR%R)<>(DELETED) then Say( *) If(%NV%SELECTED%)=(%VAR%I) then Say($7$&0&*) If(%NV%SELECTED%)<>(%VAR%I) then Say($0$&7&*) MenuEqual(a=%MSGFROM%) SetLen(a=25) Say(%VAR%A *) SetEqual(a=%MSGDESC%) SetLen(a=31) Say(%VAR%A) If(%NV%SCREEN%)<>(REFRESH) then Goto(LNext) If(%NV%SCREEN%)=(REFRESH) then Ret *Done If(%NV%SCREEN%)<>(REFRESH) then ;SetEqual(i=%NV%SELECTED%) Say($0$&12&UP&15&/&12&DN &15&arrows move, &12&SPACE&15& = next page, &12&- &15&= previous page, &12&ENTER&15& selects, &12&Q&15& quits) SetEqual(y=^:I^) AddVar(%VAR%I+-1=i) SetEqual(/nvmax=%VAR%I) endif ;If(%NV%SCREEN%)=(NORMAL) then SetEqual(i=%NV%MAX%) *GetKey LoadSub(control\macros\checkkey.ctl) ;gets key from user and sets %RESP% appropriately if arrow key ;first message option is on line 4. (Current Option+3=y coord) If(%RESP%)=(Q) then Goto(Qdisp) if(%RESP%)=() then goto(Qdisp) If(%RESP%)=(?) then Goto(OlHelp) If(%RESP%)=( ) then SetEqual(/nvme=%VAR%H) AddVar(%NV%TOTMAX%+-%NV%START%=h) Inc(h) ; needed to fix one message on last page bug If(&h)<(%NV%SCREENLEN%) then Goto(LastPage) AddVar(%NV%START%+%NV%SCREENLEN%=h) AddVar(%VAR%H+-1=h) SetEqual(/nvstart=%VAR%H) AddVar(%NV%SELECTED%+%NV%SCREENLEN%=h) AddVar(%VAR%H+-1=h) SetEqual(/nvselected=%VAR%H) If(%NV%SELECTED%)>(%NV%TOTMAX%) then SetEqual(/nvselected=%NV%TOTMAX%) SetEqual(h=%NV%ME%) SetEqual(/nvme=) ;SetEqual(/nvselected=%VAR%I) ;SetEqual(/nvstart=%VAR%I) SetEqual(i=%NV%START%) Goto(Header) Endif If(%RESP%)=(-) then SetEqual(/nvme=%VAR%H) If(%NV%START%)<=(%NV%SCREENLEN%) then Goto(FirstPage) AddVar(%NV%START%+-%NV%SCREENLEN%=h) Inc(h) SetEqual(/nvstart=%VAR%H) AddVar(%NV%SELECTED%+-%NV%SCREENLEN%=h) Inc(h) SetEqual(/nvselected=%VAR%H) SetEqual(h=%NV%ME%) SetEqual(/nvme=) ;SetEqual(/nvselected=%VAR%I) SetEqual(/nvscreen=NORMAL) SetEqual(i=%NV%START%) Goto(Header) Endif If(%RESP%)=(<CR>) then Goto(Done2) If(%RESP%)=(2) then Jump(DownArrow) ; down arrow pressed If(%RESP%)=(8) then ; up arrow pressed SetEqual(/nvtemp=%NV%SELECTED%) If(%NV%SELECTED%)<=(%NV%START%) then Goto(QuickFix) SetEqual(i=%NV%SELECTED%) AddVar(%VAR%I+-1=i) SetEqual(/nvselected=%VAR%I) SetEqual(/nvscreen=REFRESH) SetEqual(i=%NV%TEMP%) AddVar(%VAR%I+3=q) setequal(y=^:I^) Jump(Repeat2) SetEqual(i=%NV%SELECTED%) AddVar(%VAR%I+3=q) setequal(y=^:I^) Jump(Repeat2) Goto(Done) endif If(%RESP%)=(<CR>) then Goto(Done2) Ascii(%RESP%) If(%ARESP%)=(13) then Goto(Done2) Goto(GetKey) *Done2 ;Enter SetEqual(i=%NV%SELECTED%) SetEqual(/nvi=%VAR%I) SetEqual(i=^:I^) getmail(%var%i,,%var%w) Say($0$*) Goto(AgMail) Return *aGMail SetEqual(/nvstatus=) LoadSub(control\macros\showmsg.ctl) If(%NV%STATUS%)=(INBOX) then goto(inbox) If(%NV%STATUS%)=(INV2) then Goto(inv2) If(%NV%STATUS%)=(REPEAT) then Goto(repeat) If(%NV%STATUS%)=(HEADER) then Goto(header) If(%NV%STATUS%)=(QDISP) then Goto(qdisp) Goto(repeat2) ; *** IS THIS THE RIGHT LABEL? *** *lnext inc(i) setequal(y=^:I^) if (^:I^)=() then goto (done) SetEqual(/nvme=%VAR%H) AddVar(%VAR%I+-%NV%START%=h) Inc(h) if (&h)<(%nv%screenlen%) then SetEqual(h=%NV%ME%) SetEqual(/nvme=) goto(repeat2) endif If(&h)<(%NV%SCREENLEN%) then Say($0$) if (&h)>=(%nv%screenlen%) then say($0$&14&[MORE]) SetEqual(h=%NV%ME%) SetEqual(/nvme=) goto(done) if (^:I^)=(DELETED) then goto(lnext) goto (repeat2) *qdisp Say($0$) ;linefeed(1) if (&r)=(10) then goto (endmr) SetEqual(y=^:1^) AddVar(%VAR%Y+-2=y) SetHigh(%VAR%Y) Return *smore setequal(x=1) setequal(s=10) *SetVars SetEqual(i=^:I^) ;getmail(%var%i,,%var%w) Say($0$*) Goto(AgMail) *inv2 if (&s)=(10) then goto (abb) say(&CR&&12&Invalid selection! Please try again...) secpause(1) flushout if (&s)=(5) then goto (reading) *abb if (&z)=(0) then goto (brmail) goto (endmr) *firstmsg Say(&CR&&12&This is the first message in your INBOX&CR&) SecPause(1) SetEqual(i=%NV%I%) SetEqual(/nvselected=%VAR%I) Goto(AGMail) *lastmsg Say(&CR&&12&This is the last message in your INBOX&CR&) SecPause(1) SetEqual(i=%NV%I%) SetEqual(/nvselected=%VAR%I) Goto(AGMail) *endmr say(&11&&CR& ══ &14&No more mail found for you to read, %FNAME%&11& ══&CR&) enter Return *getHiLow himsg setequal(f=%ARESP%) setnv(f=%aresP%) lowmsg setequal(n=%ARESP%) setnv(n=%aresp%) ret *Dequeue DeQueue(q) SetEqual(/RESP=%ARESP%) Len(%VAR%Q) SetEqual(l=%VAR%Q) If(%VAR%L)=(0) then Goto(Disp2) Goto(Process) *enqueue LoadSub(CONTROL\MACROS\enqueue.CTL) Goto(dequeue) *QuickFix AddVar(%NV%START%+-1=i) If(&i)<(1) then SetEqual(i=%NV%TOTMAX%) SetEqual(/nvselected=%VAR%I) Inc(i) AddVar(%VAR%I+-%NV%SCREENLEN%=i) Inc(i) If(&i)<(1) then SetEqual(i=1) SetEqual(/nvstart=%VAR%I) SetEqual(/nvscreen=NORMAL) Goto(Header) endif SetEqual(/nvstart=%VAR%I) SetEqual(/nvscreen=NORMAL) SetEqual(/nvselected=%VAR%I) Goto(Header) *CalcOffset SetEqual(/nvme2=%VAR%U) MultVar(%NV%SCREENLEN%*%NV%PAGE%=u) AddVar(%VAR%I+%VAR%U=i) SetEqual(u=%NV%ME2%) SetEqual(/nvme2=) Ret *Inbox SetEqual(r=10) SetEqual(y=^:1^) AddVar(%VAR%Y+-1=y) SetHigh(%VAR%Y) Inc(y) himsg(/:LASTMSG/) SetEqual(f=%ARESP%) setnv(f=%aresp%) lowmsg(/:lastmsg/) SetEqual(n=%ARESP%) setnv(n=%aresp%) SetEqual(i=%NV%START%) setequal(/nvsnsearch=1) SetEqual(/nvscreen=NORMAL) Goto(Header) *Header SetEqual(/nvscreen=NORMAL) setequal(y=^:I^) ClearScr Say($0$&14&D = Deleted Message A = File Attached N = New Message R = Replies) Say(&CR&&15& # FROM REGARDING) Goto(Repeat2) *DownArrow ; Say(DOWN ARROW PRESSED!) SetEqual(/nvtemp=%NV%SELECTED%) ;NotIf(%NV%SELECTED%)<(%NV%MAX%) then SetEqual(/nvselected=0) SetEqual(i=%NV%SELECTED%) *Incme Inc(i) ;Say(I is now %VAR%I) ;Enter If(^:I^)=(DELETED) then Goto(Incme) If(&i)>(%NV%MAX%) then If(&i)>(%NV%TOTMAX%) then SetEqual(i=1) SetEqual(/nvstart=1) SetEqual(/nvselected=1) SetEqual(/nvscreen=NORMAL) Goto(Header) endif If(&i)>(%NV%TOTMAX%) then Goto(GetKey) SetEqual(/nvselected=%VAR%I) ; Say(FINAL I=%VAR%I) ; Enter AddVar(%VAR%I+-%NV%SCREENLEN%=i) Inc(i) Inc(i) SetEqual(/nvstart=%VAR%I) ; Say(START I=%VAR%I) ; Say(NVSCREENLEN=%NV%SCREENLEN%) ; Enter Goto(Header) Endif SetEqual(/nvselected=%VAR%I) SetEqual(/nvscreen=REFRESH) SetEqual(i=%NV%TEMP%) AddVar(%VAR%I+4=q) setequal(y=^:I^) Jump(Repeat2) SetEqual(i=%NV%SELECTED%) AddVar(%VAR%I+4=q) setequal(y=^:I^) Jump(Repeat2) Goto(Done) Ret *LastPage AddVar(%NV%SCREENLEN%+3=h) AnsiGoto(1,%VAR%H) Say($0$&12&This is the last page of INBOX messages) SecPause(1) AnsiGoto(1,%VAR%H) ELine(55) SetEqual(h=%NV%ME%) SetEqual(/nvme=) Goto(GetKey) *FirstPage AddVar(%NV%SCREENLEN%+3=h) ;AnsiGoto(1,%VAR%H) ;Say($0$&12&This is the first page of INBOX messages) ;SecPause(1) ;AnsiGoto(1,%VAR%H) ;ELine(55) SetEqual(h=%NV%ME%) SetEqual(/nvme=) SetEqual(/nvstart=1) SetEqual(/nvselected=1) SetEqual(i=1) Goto(Header) ;SetEqual(/nvselected=%VAR%I) ;Goto(GetKey) *OlHelp SetNv(atprompt=Yes) SetNv(helpoption=141) LoadSub(olhelp\olhelp.ctl,goto(implementoption)) SetEqual(i=%NV%START%) Goto(Header) VIEWBCTL¥if (%nv%wipmode%)=(1) then goto (wip) say(&CR&&3&Would you like to view the &11&bulletins menu&3&? &9&[ ]&14&*) back(4) yesnoask(*) if (%RESP%)=(No) then loadmem(control\main.mnu) loadmem(control\bullet.mnu) *wip writeln (Yes/No Question: Would you like to view the bulletins menu?) writeln() setequal(c=13~Would you like to view the bulletins menu?~Yes/No Question~2~) jump (wipc) *gi0 comlineinput(180,l) if (%aresp%)=(24) then log(<<,User did not press a key for a while. Timeout) display(display\timeout) quitbbs endif *tryr setequal(r=%resp%) if (%aresp%)=(N) then loadmem(control\main.mnu) if (%aresp%)=(n) then loadmem(control\main.mnu) ascii if (%aresp%)=(21) then goto (WipNotFound) if (%aresp%)=(6) then len(%var%r) if (%aresp%)=(1) then goto (gi0) get(&r,2,1000) setequal(/resp=%aresp%) goto (tryr) endif if (%resp%)<>(2) then loadmem(control\main.mnu) loadmem(control\bullet.mnu) *GCHAR COMPRINT(%NV%TEXT%) SETEQUAL(A=0) DO COMKEY ASCII IF(%ARESP%)=(21) THEN GOTO(GCHAR) INC(A) IF(&B)=(-1) THEN IF (%RESP%)<>() THEN RET IF(%ARESP%)=(&B) THEN RET IF(&A)>(45) THEN RET IF(%RESP%)<>() THEN SETNV(PBACK=%NV%PBACK%%RESP%) DELAY18TH(2) LOOP *WIPC LOCALKEY(1) IFNOTTRUE(GOTO(NOLKEY)) SYSKEYCHECK SETEQUAL(/RESP=) SETEQUAL(/RESP=) *NOLKEY CCARRIER IF(%ARESP%)=(0) THEN GOTO (NOC0) CHECKSUM(%VAR%C) SETEQUAL(B=6) SETNV(TEXT=$%ARESP%%VAR%C%C%13%) SETNV(PBACK=) JUMP(GCHAR) IF(%ARESP%)<>(6) THEN JUMP(GCHAR) SETEQUAL(/IBUFF=%NV%PBACK%) LEN(%NV%PBACK%) SETEQUAL(/IBUFF0=%ARESP%) RET *NOC0 log(<<,Carrier lost.) quitbbs BULL-RCTLesay(!|J10|n2000|M08|fZKQO|b284MXCJU280O0002X000|c0F|=001EKF01) say(!|W00|LA2QMA2QM|c48|Y03000909|@0016%nv%btitle%|fZKQO) say(!|Y03000609|1B00000201EY016I000F4G0700020G07000000) say(!|1B00000201EY016I000F4G0700020G07000000) say(!|1U1UKQ8SNS2B00<>Stop<>S) say(!|1B00000201EY016I000F4G0700020G07000000) say(!|1B00000201EY016I000F4G0700020G07000000) say(!|1U9GKQGINS2600<>NonStop<>NS) say(!|1B00000201EY016I000F4G0700020G07000000) say(!|1UH2KSPQNU1V20<>Continue<>C|k00|Y0000013T|@28QMR) say(!|@00P6PBRIP2=BETA=Robert Spier|#|#|#) view(%nv%bname%) enter say(!|e|*|#|#|#) enter say(Thing shown) return SECINFOCTL= nicedate(/:last/) setnv(lastcall=%aresp%) nicedate(/:first/) setnv(firstcall=%aresp%) nicedate(/:lastchk/) setnv(newcheck=%aresp%) if (/:lastdown/)>(%maxfarea%) then setequal(/lastdown=1) selfarea(/:lastdown/) ClearScr NiceDate(/:LAST/) setequal(^53=%ARESP%) If (/LASTCHK)=(00-00-00) then setequal(^58=N/A) if (/LASTCHK)=(00-00-00) then goto (bakn) NiceDate(/:LASTCHK/) setequal (^58=%ARESP%) *BAKN if (%nv%wipmode%)=(1) then goto (wipi) Display (display\sec/:SEC/) Say(&7& Time Limit : &12&%LIMIT% Minutes) Say(&7& Graphics Mode : &12&%GRAPHICS%) Say(&7& Last New Files Check : &12&%nv%newcheck%) Say(&7& First Call to BBS : &12&%nv%firstcall%) Say(&7& Most Recent Call to BBS : &12&%nv%lastcall%) Say(&7& Number of Times on BBS : &12&/:TIMESON/) Say() enter ClearScr *OutOfHere setnv(firstcall=) setnv(lastcall=) setnv(newcheck=) if (%nv%fromopen%)=(1) then goto (oback) Return *oback setnv(fromopen=) LoadMem(control\mscan.ctl) *wipi inpopen(display\sec/:sec/.no) *stl0 fendif(done0) inpread writeln(%aresp%) goto (stl0) *done0 inpclose setnv(wippath=%pbtemp%) kill(%nv%wippath%secinfo.wip) loadsub(control\ewipscr.ctl,setnv(wipf=secinfo)) goto(outOfHere) TESTCTL╩fdate(wip\resource\nuiq1.ico) say(date %aresp%!) getnumbers(%aresp%) say(w/o #s:%aresp%) ftime(wip\resource\nuiq1.ico) say(time %aresp%!) getnumbers(%aresp%) say(w/o #s:%aresp%) enter quitbbs ZIPVIEWCTL$say(&11&Viewing Archive '%var%e' ────────────────────────────────────────────────) *EXLP Say(&CR&&7& Length Method Size Ratio Date Time CRC-32 Attr Name&11&) InpRead Say(──────────────────────────────────────────────────────────────────&15&) setequal(l=0) setequal(p=5) resetpause ;spause(5) DO fEndIf(eloop) InpRead SetEqual(h=%ARESP%) Get (%ARESP%,1,3) If (%ARESP%)=( --) then goto (elp) inc(l) Say(%var%h) inc(p) if (&p)=(/:screenlen/) then jump (pause) LOOP *ELP InpRead Say(&11&──────────────────────────────────────────────────────────────────) inc(p) if (%var%p)=>(/:screenlen/) then jump (pause) get (%aresp%,1,50) Say(&12&%ARESP%) InpClose inc(p) say (&CR&&14& %var%l File(s) in archive) inc(p) if (%var%p)=>(/:screenlen/) then jump (pause) *ELOOP MenuAsk (%LEN%1%&CR&&3&Would you like to &11&(&7&R&11&)ead Textfile, (&7&D&11&)ownload File, (&7&L)&11&ist, (&7&Q&11&)uit?&14& *) if (%resp%)=() then goto (quit) BigIf (d:download,r:read,q:quit,l:list) Goto (eloop) *LIST InpClose InpOpen(%pbtemp%zipinfo.txt) linefeed(1) DO InpRead Get (%ARESP%,1,7) NotIf (%ARESP%)=() then if (%ARESP%)=( Length) then goto (exlp) EofLoop *QUIT InpClose SelFArea (/:lastdown/) if (%nv%wipe%)=() then return setnv(wipe=) setnv(wipmode=1) Return *READ Say(&CR&&3&Please enter the name of the file to read&12&: &14&( )&15&*) Back(13) MenuAsk(%CRON%%LEN%12%*) if (%RESP%)=(<CR>) then goto (eloop) Say(&CR&&11&Retrieving &7&%RESP%&11&, Please Wait!&7&) mkdir(%PBTEMP%ZVTEMP) KILL(%PBTEMP%ZVTEMP\*.*) Exec(pkunzip %FILPATH%%var%e %RESP% %pbtemp%zvtemp\ >nul,) View (%pbtemp%zvtemp\%RESP%) kill(%pbtemp%zvtemp\*.*) Enter Goto (eloop) *DOWNLOAD Say(&3&&CR&Please enter the name of the file to download&12&: &14&( )&15&*) Back(13) MenuAsk(%CRON%%LEN%12%*) if (%RESP%)=(<CR>) then goto (eloop) Say(&CR&&11&Retrieving &7&%RESP%&11&, Please Wait!&7&) mkdir(%PBTEMP%ZVTEMP) KILL(%PBTEMP%ZVTEMP\*.*) Exec(pkunzip %FILPATH%%var%e %RESP% %pbtemp%zvtemp\ >nul,) SetEqual(d=%RESP%) Seek(%pbtemp%zvtemp\%RESP%) IfNotTrue (goto (eloop)) *PICKP Display (Display\DN-PROTS) MenuAsk (%MIN%1%&3&Which transfer protocol would you like to use?&11&(or Q to Quit)&12&: &15&*) Find(%RESP%,\) ;make sure they didnt stick a backslash in there NotIf (%ARESP%)=(0) Then Goto (eloop) BigIf(q:eloop) SetEqual(b=%RESP%) Seek(protocol\%var%b-VD.BT) ;check to see If protocol exists.. IfNotTrue(Goto (pickp)) Len(%var%b) NotIf (%ARESP%)=(1) then goto (nobat) Say(&CR&&3& Would you like to download this file? &9&[ ]&14&*) Back(4) YesNoAsk(*) If (%RESP%)=(No) Then Goto (eloop) Say(&CR&&11&We're sending the file you requested. Please get ready to receive it now.) If (%LOCAL%)=(TRUE) Then Goto (eloop) FixFile(protocol\%var%b-vd.bt,protocol\%var%b-vd.bat) InitClock Exec(protocol\%var%b-vd.BAT│) Kill(protocol\%var%b-vd.bat) If (%LOCAL%)=(FALSE) Then toglocal NotIf (%ARESP%)=(0) Then Goto (nsc) XferTime SetEqual(e=%ARESP%) Size(%pbtemp%zvtemp\%var%d) MultVar(%XMIN%*60=o) DivVar(%ARESP%/%var%o=g) ;calculate CPS rate CnvtK(%ARESP%) AddVar(%ARESP%+/:KDOWN/=o) SetEqual(/KDOWN=%var%o) Say(%BEEP%*) Log(--,%var%d Downloaded from Zip:%var%e.) Log(--,Rate: %var%g CPS) AppendTo(logs\DOWNLOAD.%NODE%,%var%d downloaded by %NAME% at %TIME% on %DATE%.) SetEqual(a=/:DOWNLOADS/) inc(a) SetEqual(/DOWNLOADS=%var%a) If (%LOCAL%)=(TRUE) Then toglocal Display (Display\SUCCESS) kill(%pbtemp%zvtemp\*.*) Enter Goto (eloop) *NOBAT Say(&CR&&15&No batch protocols allowed for transfering this file.&CR&) Goto (pickp) *nsc toglocal goto (eloop) *pause setequal(p=1) pauseprompt if (%ARESP%)=(STOP) then goto (elp) ret NOTFOUNDCTLh seek(pigsfly7.zoo) NotIf(%HANDLE%)=(Yes) then badseek(%NAME%) iftrue (loadmem(control\badname.ctl)) if (%graphics%)=(WIP) then goto (WipNotFound) beep(1) Say(&CR&We couldn't find "%NAME%" in our user file.) Say(&CR&&15&Did you spell your name correctly? *) jump (YesNo) If (%RESP%)=(No) then loadmem(control\open.ctl,Goto (TryAgain)) Display (display\NONMEMB) Say (&CR&&12&You have specified &15&%NAME%&12& as your name. This will be used to) Say (create a new account for you if you answer yes to the following question.) Say (&CR&&15&Would you like to log on to %BBS% as a new user? &14&*) jump (YesNo) If (%RESP%)=(No) then loadmem (control\refused.ctl) LoadMem (control\newuser.ctl) *WipNotFound writeln(We could not find "%NAME%" in our user file. Log on as a new user?) setequal(c=13~We could not find "%NAME%" in our user file. Log on as a new user?~Account Not Found~2~) jump (wipc) *gi0 comlineinput(180,l) if (%aresp%)=(24) then log(<<,User did not press a key for a while. Timeout) display(display\timeout) quitbbs endif *tryr setequal(r=%resp%) ascii if (%aresp%)=(21) then goto (WipNotFound) if (%aresp%)=(6) then len(%var%r) if (%aresp%)=(1) then goto (gi0) get(&r,2,1000) setequal(/resp=%aresp%) goto (tryr) endif ;if (%resp%)<>(2) then loadmem(control\wipwelc.ctl,goto(ExecScreen)) if (%resp%)<>(2) then goto (wipback3) loadsub(control\ewipscr.ctl,setnv(wipf=nonmemb)) loadmem(control\newuWip.ctl) *wipback3 loadsub(control\wipwelc.ctl,goto(execScreen)) loadmem(control\open.ctl,goto(cont)) *GCHAR COMPRINT(%NV%TEXT%) SETEQUAL(A=0) DO COMKEY ASCII IF(%ARESP%)=(21) THEN GOTO(GCHAR) INC(A) IF(&B)=(-1) THEN IF (%RESP%)<>() THEN RET IF(%ARESP%)=(&B) THEN RET IF(&A)>(45) THEN RET IF(%RESP%)<>() THEN SETNV(PBACK=%NV%PBACK%%RESP%) DELAY18TH(2) LOOP *WIPC LOCALKEY(1) IFNOTTRUE(GOTO(NOLKEY)) SYSKEYCHECK SETEQUAL(/RESP=) SETEQUAL(/RESP=) *NOLKEY CCARRIER IF(%ARESP%)=(0) THEN GOTO (NOC0) CHECKSUM(%VAR%C) SETEQUAL(B=6) SETNV(TEXT=$%ARESP%%VAR%C%C%13%) SETNV(PBACK=) JUMP(GCHAR) IF(%ARESP%)<>(6) THEN JUMP(GCHAR) SETEQUAL(/IBUFF=%NV%PBACK%) LEN(%NV%PBACK%) SETEQUAL(/IBUFF0=%ARESP%) RET *NOC0 log(<<,Carrier lost.) quitbbs *yesno Say(&15&(&12&Y&15&/&12&N&15&)&14&*) Back(4) YesNoAsk(*) ret OKBOXCTLçjump (wipc) setequal(c=0A~) jump (wipc) return *okbox0 Jump (wipc) comlineinput(180,l) if (%aresp%)=(24) then loadmem(control\timeout.ctl) if (%resp%)=() then goto (okbox) ret *GCHAR COMPRINT(%NV%TEXT%) SETEQUAL(A=0) DO COMKEY ASCII IF(%ARESP%)=(21) THEN GOTO(GCHAR) INC(A) IF(&B)=(-1) THEN IF (%RESP%)<>() THEN RET IF(%ARESP%)=(&B) THEN RET IF(&A)>(50) THEN RET IF(%RESP%)<>() THEN SETNV(PBACK=%NV%PBACK%%RESP%) DELAY18TH(2) LOOP *WIPC LOCALKEY(1) IFNOTTRUE(GOTO(NOLKEY)) SYSKEYCHECK SETEQUAL(/RESP=) SETEQUAL(/RESP=) *NOLKEY CCARRIER IF(%ARESP%)=(0) THEN GOTO (NOC0) CHECKSUM(%VAR%C) SETEQUAL(B=6) SETNV(TEXT=$%ARESP%%VAR%C%C%13%) SETNV(PBACK=) JUMP(GCHAR) IF(%ARESP%)<>(6) THEN JUMP(GCHAR) setequal(c=%aresp%) SETEQUAL(/IBUFF=%NV%PBACK%) LEN(%NV%PBACK%) SETEQUAL(/IBUFF0=%ARESP%) SETEQUAL(/ARESP=%VAR%C) RET *NOC0 log(<<,Carrier lost.) quitbbs SUBREADCTL InpOpen (sub.bbs) *STRSUB fEndIF(done) InpRead SetEqual(b=%ARESP%) SetEqual(a=%var%b) Len(%var%a) If (%ARESP%)=(0) then Goto (strsub) Get(&a,1,1) If (%ARESP%)=(;) then Goto (strsub) Find(&b,,) If (%ARESP%)=(0) then Goto (strsub) SetEqual(a=%var%b) SetEqual(c=%ARESP%) AddVar(%var%c+-1=c) Get(&a,1,%var%c) NotIF (%ARESP%)=(/:SEC/) then Goto (strsub) AddVar(%var%c+2=c) Get(&b,%var%c,10) SetEqual (/SEC=%ARESP%) SetEqual (/SUB=N) Log(--,User's subscription expired.) *done return NEWUSER2CTLƒsetactivity(New-user Logon...) log(==,New User (%var%D) Registering...) setequal(\company=) setequal(\street1=) setEqual(\title=) setequal(\mhsname=) setequal(\NAME=%var%D) setequal(\LAST=%DATE%) setequal(\LASTCHK=%DATE%) setequal(t=0) *street ask(&CR&&3&Please enter your &11&street &3&address&12&:&15& *) setequal(\STREET=%RESP%) *city ask(%MIN%1%%LEN%40%&CR&&3&Please enter the &11&City & State &3&that you're calling from&12&: &15&*) setequal(/FROM=%RESP%) setequal(\FROM=%RESP%) if (/:from/)=(\:street\) then goto (fake) ask(%LEN%10%&CR&&3&Please enter your &11&Postal Code&12&:&15& *) setequal(\zip=%resp%) ask(&3&&CR&Please enter the country you're calling from&12&: &15&*) setequal(\country=%resp%) update *PASS menuask(%MIN%2%&3&&CR&Please enter the password you would like to use for access&12&: &15&*) menuequal(a=%name%) if (%resp%)=(&a) then goto (bp) menuequal(a=%fname%) if (&a)=(%resp%) then goto (bp) menuequal(a=%lname%) if (&a)=(%resp%) then goto (bp) setequal(\PASS=%RESP%) setequal(k=%RESP%) say(&CR&&10&Dots will echo instead of the actual letters of your password.) say(&CR&&3&Please enter the password again for verification&12&: &15&*) cgetpass(%MIN%2%.) notif (%RESP%) = (&k) then goto (badpass) menuask(&CR&&3&Please enter your telephone number&12&: &15&*) repeating(%resp%) iftrue(goto(fake)) setequal(\PHONE=%RESP%) setequal(/PHONE=%Resp%) say(&CR&&3&Please enter your &11&birthdate &3&in the format shown. (MM-DD-YY)&15&) update picture(##-##-##) repeating(%resp%) iftrue(goto (fake)) setequal(\BIRTH=%RESP%) setequal(/birth=%resp%) say(&CR&&3&From where did you hear of this BBS?&12&: &15&*) ask(*) setequal(/memo5=%resp%) clearscr say(&CR&&3&Thank you for registering as a new user on the Powerboard World Support BBS.) say(&CR&We would now like to present you with some information on BBS DIRECT, a way) say(for you to save on your long-distance calls to this BBS.) say(&CR&&12&It is *not* necessary that you subscribe to BBS DIRECT in order to access) say(this system. &3&However, we do recommend it as a way to cut down on your long-) say(distance bill.) say() say(&3&View information on &11&BBS DIRECT&3& service? &9&[ ]&14&*) back(4) yesnoask(*) if (%resp%)=(No) then goto (putemin) display(display\bbsdir) view(text\info.txt) *putemin setequal(\WAIT=N) setequal(\FIRST=%DATE%) setequal(\SCREENLEN=24) setequal(\LEFT=70) setequal(/left=70) setequal(\SEC=%NEWSEC%) *CreateIt say(&14&Please wait while your records are created.*) findsp Say(.*) setequal(a=%aresp%) saveuser(%var%a) Say(.*) setequal(g=\:alias\) upcase(g) setequal(e=%var%D│%var%g│\:PASS\│\:FROM\│%var%a│0%C%13%%C%10%) setlen(e=116) appendtoN(userfile.ndx,%var%e%C%10%) UserLogin(%var%a,User %var%a: %var%d Logged On (%BAUD%)) If (%ARESP%)=(ALREADY ON) then QuitBBS qdx(%var%a) say( |) eline(55) appendto(phones.dat,\:phone\) clearscr say(&CR&&3&Thank you for registering as a new user on the Powerboard World Support BBS.) say(&CR&We would now like to present you with some information on BBS DIRECT, a way) say(for you to save on your long-distance calls to this BBS.) say(&CR&&12&It is *not* necessary that you subscribe to BBS DIRECT in order to access) say(this system. &3&However, we do recommend it as a way to cut down on your long-) say(distance bill.) say() say(&15&View information on BBS DIRECT service? (&12&Y&15&/&12&N&15&)&14&*) back(4) yesnoask(*) if (%resp%)=(No) then goto (fin) display(display\bbsdir) view(text\info.txt) *fin loadmem(control\open.ctl,goto (conclr)) *BADPASS say(&CR&&12&The passwords did not match. Please try again...&CR&) goto (pass) *fake appendto(badnames.bbs,%name%) log(--,User attempted log on with false info) quitbbs *inv inc(t) if (&t)=(2) then goto (fake) goto(city) *bp say (&CR&&12&Please enter a more unique, hard to guess password.&CR&) goto (pass) TIMEOUTCTLR writeln(User took too long to respond. Disconnecting ...) setequal(c=13~You took too long to respond. Disconnecting ...~Timeout!~0~) Jump (wipc) secpause(4) quitbbs *GCHAR COMPRINT(%NV%TEXT%) SETEQUAL(A=0) DO COMKEY ASCII IF(%ARESP%)=(21) THEN GOTO(GCHAR) INC(A) IF(&B)=(-1) THEN IF (%RESP%)<>() THEN RET IF(%ARESP%)=(&B) THEN RET IF(&A)>(45) THEN RET IF(%RESP%)<>() THEN SETNV(PBACK=%NV%PBACK%%RESP%) DELAY18TH(2) LOOP *WIPC LOCALKEY(1) IFNOTTRUE(GOTO(NOLKEY)) SYSKEYCHECK SETEQUAL(/RESP=) SETEQUAL(/RESP=) *NOLKEY CCARRIER IF(%ARESP%)=(0) THEN GOTO (NOC0) CHECKSUM(%VAR%C) SETEQUAL(B=6) SETNV(TEXT=$%ARESP%%VAR%C%C%13%) SETNV(PBACK=) JUMP(GCHAR) IF(%ARESP%)<>(6) THEN JUMP(GCHAR) SETEQUAL(/IBUFF=%NV%PBACK%) LEN(%NV%PBACK%) SETEQUAL(/IBUFF0=%ARESP%) RET *NOC0 log(<<,Carrier lost.) quitbbs EXITWIPCTL!setnv(aa=%var%a) setnv(bb=%var%b) setnv(cc=%var%c) setnv(ee=%var%e) setnv(resp0=%resp%) setnv(wipe=) if (%nv%wipmode%)<>(1) then return write(Exiting WIP mode ... ) setnv(wipe=1) setnv(wipmode=) setequal(e=0) *ExitAgain inc(e) setequal(c=0B~) jump (wipc) secpause(1) flushout *DetectWip comsend(t) say ( |) say ( |) secpause(1) comkey if (%aresp%)<>() then flushout goto (retn) endif secpause(1) comkey if (%aresp%)<>() then flushout goto (retn) endif comkey if (%aresp%)<>() then flushout goto (Retn) endif if (%var%e)<(4) then goto (ExitAgain) flushout goto (retn) *GCHAR COMPRINT(%NV%TEXT%) SETEQUAL(A=0) DO COMKEY ASCII IF(%ARESP%)=(21) THEN GOTO(GCHAR) INC(A) IF(&B)=(-1) THEN IF (%RESP%)<>() THEN RET IF(%ARESP%)=(&B) THEN RET IF(&A)>(45) THEN RET IF(%RESP%)<>() THEN SETNV(PBACK=%NV%PBACK%%RESP%) DELAY18TH(2) LOOP *WIPC LOCALKEY(1) IFNOTTRUE(GOTO(NOLKEY)) SYSKEYCHECK SETEQUAL(/RESP=) SETEQUAL(/RESP=) *NOLKEY CCARRIER IF(%ARESP%)=(0) THEN GOTO (NOC0) CHECKSUM(%VAR%C) SETEQUAL(B=6) SETNV(TEXT=$%ARESP%%VAR%C%C%13%) SETNV(PBACK=) JUMP(GCHAR) IF(%ARESP%)<>(6) THEN JUMP(GCHAR) SETEQUAL(/IBUFF=%NV%PBACK%) LEN(%NV%PBACK%) SETEQUAL(/IBUFF0=%ARESP%) RET *NOC0 log(<<,Carrier lost.) quitbbs *retn say ( |) writeln(Exiting WIP mode ... Done!) setnv(wipmode=) goto (dr) *dr setequal(a=%nv%aa%) setequal(b=%nv%bb%) setequal(c=%nv%cc%) setequal(e=%nv%ee%) setequal(/resp=%nv%resp0%) setnv(aa=) setnv(bb=) setnv(cc=) setnv(dd=) setnv(resp0=) return NEWDISPCTLÜsetnv(didwip=) setnv(dir=display\) if (%nv%dispdir%)<>() then jump (dd) if (%nv%wipmode%)<>(1) then goto (regular) seek(%nv%dir%%nv%file%.wi0) iftrue(goto(enhanced)) seek(%nv%dir%%nv%file%.wip) iftrue(goto(wipfile)) seek(%nv%dir%%nv%file%.rip) iftrue(goto(stdWip)) seek(%nv%dir%%nv%file%.ans) iftrue(goto(wipans)) seek(%nv%dir%%nv%file%.asc) iftrue(goto(wipans)) setnv(dir=) return *stdWip display(%nv%dir%%nv%file%) setnv(file=) setnv(wipmode=1) setnv(NoInfo=) setnv(dir=) return *regular display(%nv%dir%%nv%file%) setnv(file=) setnv(noinfo=) return *wipfile seekfile(%nv%dir%%nv%file%.wip,N=Powerboard) ifnottrue(goto(stdwip0)) *enhanced seek(%nv%dir%%nv%file%.wip) ifnottrue(goto(now0)) goto (doDisp) *now0 seek(%nv%dir%%nv%file%.wi0) ifnottrue(return) *dodisp setnv(didwip=1) loadmem(control\ewipscr.ctl,setnv(wipf=%nv%file%)) *stdwip0 seek(%nv%dir%%nv%file%.wip) iftrue(goto(stdwip)) seek(%nv%dir%%nv%file%.ans) iftrue(goto(stdwip)) seek(%nv%dir%%nv%file%.asc) iftrue(goto(stdwip)) setnv(dir=) return *wipans loadsub(control\exitwip.ctl) goto(stdwip) *dd setnv(dir=%nv%dispdir%) setnv(dispdir=) ret DORIP q!|*|1K|S010F|k00|N01|N00|KB4QEB4QE|KB4QEB4QE|S0100|K00I210QE|J10|n2000|M08 !|fZKQO|b0000ZII2280S0002X000|#|#|# BIRTHCTL¿if (%nv%wipmode%)=(1) then goto (wipm) Display (display\b-day) ;show birthday screen Enter Return *wipm loadsub(control\ewipscr.ctl,setnv(wipf=b-day)) return EWIPSCRCTL *doagain setequal(q=) setnv(wipwait=200) setnv(wipmode=1) if (%nv%jexec%)=(1) then goto (execScreen) writeln() if (%nv%wippath%)=() then setnv(wippath=display\) if (%nv%asciiequiv%)=() then goto (noasciie) inpopen(%nv%wippath%%nv%wipf%.asc) *thetopw fendif (fdone) inpread writeln (%aresp%) goto (thetopw) *fdone inpclose setnv(asciiequiv=) *noasciie setnv(wtx=) setnv(wipfile1=%nv%wipf%.wip) setnv(wipfile=%nv%wippath%%nv%wipfile1%) writeln(Now displaying .WIP screen "%nv%wipfile%" . . .) seek(%nv%wipfile%) iftrue(goto(NoTemplate)) seek(display\%nv%wipf%.wi0) ifnottrue(goto(retn)) fixfile(display\%nv%wipf%.wi0,%nv%wippath%%nv%wipf%.wip) *NoTemplate setnv(wiprestreq=) jump (parseWip) setnv(wipe=) setequal(c=01~) jump (wipc) comlineinput(4,l) flushout *IsItHere FTime(%nv%wipfile%) setequal(a=%aresp%) FDate(%nv%wipfile%) setequal(d=%aresp%) seekrep(d,45,47) get(&d,1,1) if (%aresp%)=(0) then get(&d,2,1000) setequal(d=%aresp%) endif setequal(c=02~Powerboard~Powerboard~%nv%wipfile1%~%var%a~%var%d~) jump (wipc) *gi0 comlineinput(30,l) setequal(r=%resp%) ascii if (%aresp%)=(21) then goto (IsItHere) if (%aresp%)=(6) then len(%var%r) if (%aresp%)=(1) then goto (gi0) get(&r,2,1000) setequal(/resp=%aresp%) endif if (%RESP%)<>(1) then if (%RESP%)<>(0) then goto (IsItHere) flushOut if (%resp%)=(0) then setequal(b=6) setequal(c=03~Z~) checksum(%var%c) setequal(/nvText=$%aresp%%var%c%C%13%) jump(gChar) if (%aresp%)=(6) then exec(dsz.com port %port% speed %lbaud% sz %nv%wipfile%) flushout endif endif setequal(c=06~Powerboard~Powerboard~%nv%wipfile1%~) jump (wipc) write(Updating client's resource file directory ...) *getrec0 if (%LOCAL%)=(FALSE) then ccarrier if (%aresp%)=(0) then quitbbs endif flushout setequal(c=04~Powerboard~Powerboard~%nv%wipfile1%~) jump (wipc) if (%aresp%)<>(6) then goto (do4over) ComlineInput(45,l) setequal(b=6) setequal(c=%resp%) *tc get(&c,1,1) if (%aresp%)=() then get(&c,2,1000) setequal(c=%aresp%) goto(tc) endif get(&c,%var%b,1000) checksum(%aresp%) setequal(d=%aresp%) get(&c,1,4) if (%var%b)=(7) then get(&c,2,4) upcase(d) if (%aresp%)<>(%var%d) then goto (getrec0) flushout delimit(~) find(&c,:) addvar(%aresp%+1=d) get(&c,%var%d,1000) setequal(c=%aresp%) setnv(files=%var%c) *NextFile setequal(c=%nv%files%) dequeue(c) if (%aresp%)=() then goto (DoneFiles) setnv(file=%aresp%) dequeue(c) setnv(time=%aresp%) dequeue(c) setnv(files=%var%c) setnv(date=%aresp%) setnv(wpath=wip\resource\) seek(%nv%wpath%%nv%file%) if (%aresp%)=(No) then setnv(wpath=display\) seek(%nv%wpath%%nv%file%) endif ifnottrue(goto(NextFile)) ftime(%nv%wpath%%nv%file%) getnumbers(%aresp%) if (%aresp%)<>(%nv%time%) then flushout setequal(c=05~Z~) jump(wipc) if (%aresp%)=(6) then clearscr exec(dsz.com port %PORT% speed %LBAUD% sz %nv%wpath%%nv%file%) flushout endif endif flushout setnv(wpath=) goto(NextFile) *DoneFiles writeln(Done!) write(Updating objects on WIP screen ...) setnv(wipwait=50) *INITOBJECTS SETEQUAL(U=0) DELIMIT(`) *RARRAY INC(U) SETEQUAL(L=^:U^) DEQUEUE(L) SETEQUAL(P=%ARESP%) DEQUEUE(L) SETEQUAL(Z=%ARESP%) DEQUEUE(L) SETEQUAL(S=%ARESP%) DEQUEUE(L) JUMP(0FC) IF(%VAR%U)<(%NV%HIGHNDX%) THEN GOTO(RARRAY) writeln(Done!) *ExecScreen setnv(asciiequiv=) setnv(jExec=) flushout writeln(Sending ExecScreen command) setequal(c=0A~) jump (wipc) *GetInfo setequal(q=0) setnv(wtext=If you do not make a selection soon, we will disconnect you.) loadsub(control\ewipinfo.ctl) if (%var%q)=(2) then goto (doagain) return *geti setequal(q=0) setnv(wtext=If you do not make a selection soon, we will disconnect you.) loadsub(control\ewipinfo.ctl,goto(geti)) if (%var%q)=(2) then goto (doagain) return *GCHAR COMPRINT(%NV%TEXT%) SETEQUAL(A=0) DO COMKEY ASCII IF(%ARESP%)=(21) THEN GOTO(GCHAR) INC(A) IF(&B)=(-1) THEN IF (%RESP%)<>() THEN RET IF(%ARESP%)=(&B) THEN RET IF(&A)>(%nv%wipwait%) THEN RET IF(%RESP%)<>() THEN SETNV(PBACK=%NV%PBACK%%RESP%) DELAY18TH(2) LOOP *WIPC LOCALKEY(1) IFNOTTRUE(GOTO(NOLKEY)) SYSKEYCHECK SETEQUAL(/RESP=) SETEQUAL(/RESP=) *NOLKEY CCARRIER IF(%ARESP%)=(0) THEN GOTO (NOC0) CHECKSUM(%VAR%C) SETEQUAL(B=6) SETNV(TEXT=$%ARESP%%VAR%C%C%13%) SETNV(PBACK=) JUMP(GCHAR) if(%ARESP%)<>(6) THEN FLUSHOUT IF(%ARESP%)<>(6) THEN JUMP(GCHAR) setequal(c=%aresp%) SETEQUAL(/IBUFF=%NV%PBACK%) LEN(%NV%PBACK%) SETEQUAL(/IBUFF0=%ARESP%) SETEQUAL(/ARESP=%VAR%C) RET *NOC0 log(<<,Carrier lost.) quitbbs *PARSEWIP CLEARMEM SETEQUAL(a=0) INPOPEN(%NV%WIPFILE%) DO FENDIF(DONEP) INPREAD if (%ARESP%)=([Form]) THEN GOTO (READFORM) LOOP *READFORM SETEQUAL(C=0) DO FENDIF(DONEP) INPREAD SETEQUAL(B=%ARESP%) GET(&B,5,2) if (%ARESP%)=(0I) THEN JUMP (RRESOURCE) if (%ARESP%)=(1T) THEN JUMP (RRESOURCE) if (%ARESP%)=(0B) THEN JUMP (RRESOURCE) LOOP *DONEP INPCLOSE SETNV(HIGHNDX=%VAR%C) RET *0FC flushout SETEQUAL(C=0F~%VAR%P~%ARESP%~1~%VAR%Z~%VAR%S~) GOTO(WIPC) *RRESOURCE SETEQUAL(Y=1) IF (%ARESP%)=(0I) THEN SETEQUAL(Y=0) SETEQUAL(W=%ARESP%) DELIMIT(`) DEQUEUE(B) DEQUEUE(B) SETEQUAL(X=%ARESP%) SETEQUAL(S=) IF(&W)<>(0B) THEN GOTO(NOT) SETEQUAL(v=0) *DE DEQUEUE(B) INC(V) IF (&V)<(11) THEN GOTO(DE) SETEQUAL(S=%ARESP%) *NOT INC(C) SETEQUAL(Z=%VAR%X) GET(&Z,1,5) IF (%ARESP%)=(nosel) THEN SETEQUAL(Y=0) IF (&Y)=(0) THEN SETEQUAL(Z=) SETEQUAL(^%VAR%C=%VAR%X`%VAR%Y`%VAR%Z`%VAR%S) RET *retn setnv(wippath=) return *wipAsk loadsub(control\wipask.ctl) ret *do4over flushout goto (getrec0) WIPASKCTLªsetnv(didwip=) setequal(/aresp=) multicheck if (/:left/)<(4) then seek(%pbtemp%timewarn.%node%) iftrue(goto(ptw)) zap(%pbtemp%timewarn.%node%) setequal(c=13~Less than four minutes remain for this session.~Time Allowance Low~1~) jump (okbox) setequal(/resp=) endif *ptw setequal(/resp=) if (%MultiMsgs%)=(No) then goto (getinput) findfirst(%cpat%*.%node%) if (%aresp%)=() then if (%aresp%)<>(0) then goto (getinput) setnv(arbak=%aresp%) loadsub(control\wipsound.ctl,setnv(file=im.wav)) setequal(/aresp=%nv%arbak%) setnv(arbak=) writeln(Incomming message from another node:) setnv(fil=%cpat%%aresp%) inpopen(%cpat%%aresp%) inpread writeln(%aresp%) setequal(c=13~%aresp%) fendif(nomore) do inpread writeln(%aresp%) setequal(c=%var%c - %aresp%) fendif(nomore) loop *getinput Comlineinput(%var%y,l) setnv(y=%var%y) setnv(aresp=%aresp%) setequal(o=%resp%) *ao ascii setequal(y=%aresp%) if (%var%y)=(6) then get (&o,2,1000) if (%var%y)<>(6) then get (&o,1,1000) setequal(o=%aresp%) len(%aresp%) if (%aresp%)=(1) then if (%var%y)=(6) then setequal(o=) setequal(/resp=%var%o) if (%var%y)=(6) then if (%var%o)<>() then goto (ao) setequal(o=%resp%) *ao2 ascii setequal(y=%aresp%) if (%var%y)=(21) then get (&o,2,1000) if (%var%y)<>(21) then get (&o,1,1000) setequal(o=%aresp%) len(%aresp%) if (%aresp%)=(1) then if (%var%y)=(21) then setequal(o=) setequal(/resp=%var%o) if (%var%y)=(21) then if (%var%o)<>() then goto (ao2) setequal(b=%resp%) *NoCmnd setequal(y=%nv%y%) setnv(y=) setequal(/resp=%var%b) if (%resp%)=(-1) then setnv(wipmode=) setequal(/graphics=ANSI) secpause(2) endif setequal(/aresp=%nv%aresp%) setnv(aresp=) return *okbox strippba(%var%c) setequal(c=%aresp%) Jump (wipc) cursoron comlineinput(180,l) cursoroff if (%aresp%)=(24) then loadmem(control\timeout.ctl) if (%resp%)=() then goto (okbox) setequal(c=0A~) jump (wipc) ret *nomore setequal(c=%var%c~Instant Message~1~) inpclose kill (%nv%fil%) jump (okbox) goto(ptw) *GCHAR COMPRINT(%NV%TEXT%) SETEQUAL(A=0) DO COMKEY ASCII IF(%ARESP%)=(21) THEN GOTO(GCHAR) INC(A) IF(&B)=(-1) THEN IF (%RESP%)<>() THEN RET IF(%ARESP%)=(&B) THEN RET IF(&A)>(45) THEN RET IF(%RESP%)<>() THEN SETNV(PBACK=%NV%PBACK%%RESP%) DELAY18TH(2) LOOP *WIPC LOCALKEY(1) IFNOTTRUE(GOTO(NOLKEY)) SYSKEYCHECK SETEQUAL(/RESP=) SETEQUAL(/RESP=) *NOLKEY CCARRIER IF(%ARESP%)=(0) THEN GOTO (NOC0) CHECKSUM(%VAR%C) SETEQUAL(B=6) SETNV(TEXT=$%ARESP%%VAR%C%C%13%) SETNV(PBACK=) JUMP(GCHAR) IF(%ARESP%)<>(6) THEN JUMP(GCHAR) SETEQUAL(/IBUFF=%NV%PBACK%) LEN(%NV%PBACK%) SETEQUAL(/IBUFF0=%ARESP%) RET *NOC0 log(<<,Carrier lost.) quitbbs *twarn loadsub(control\wipsound.ctl,setnv(file=wakeup!.wav)) writeln(User not responding. Timeout warning sent to remote ...) setequal(c=13~If you do not make a selection soon, we will disconnect you.~Timeout Warning~1~) Jump (okbox0) setequal(c=0A~) jump (wipc) comlineinput(90,l) if (%aresp%)=(24) then loadmem(control\timeout.ctl) setequal(/resp=) return *okbox0 Jump (wipc) setequal(/aresp=) comlineinput(60,l) if (%aresp%)=(24) then loadmem(control\timeout.ctl) if (%resp%)=() then goto (okbox) ret WIPWELCCTL;Powerboard BBS 2.00 (C) 1995 NuIQ Software Inc. All Rights Reserved *tryWagain setnv(wstimes=0) ;# times welcome screen has been sent. setnv(wipwait=200) setnv(wipmode=1) setnv(wipf=Welcome) setnv(wtx=) setnv(wipfile1=%nv%wipf%.wip) setnv(wipfile=display\%nv%wipfile1%) seek(%nv%wipfile%) iftrue(goto(NoTemplate)) seek(display\%nv%wipf%.wi0) ifnottrue(goto(nowelc0)) fixfile(display\%nv%wipf%.wi0,display\%nv%wipf%.wip) *NoTemplate setnv(wiprestreq=) jump (parseWip) Writeln(Sending WIP Welcome Screen ...) setnv(wipe=) setnv(Text=$00DF01~%C%13%) setequal(b=6) jump (gChar) comlineinput(4,l) flushout *IsItHere FTime(%nv%wipfile%) setequal(a=%aresp%) FDate(%nv%wipfile%) setequal(d=%aresp%) seekrep(d,45,47) get(&d,1,1) if (%aresp%)=(0) then get(&d,2,1000) setequal(d=%aresp%) endif setequal(c=02~Powerboard~Powerboard~%nv%wipfile1%~%var%a~%var%d~) jump (wipc) *gi0 comlineinput(30,l) setequal(r=%resp%) ascii if (%aresp%)=(21) then goto (IsItHere) if (%aresp%)=(6) then len(%var%r) if (%aresp%)=(1) then goto (gi0) get(&r,2,1000) setequal(/resp=%aresp%) endif if (%RESP%)<>(1) then if (%RESP%)<>(0) then goto (IsItHere) flushOut if (%resp%)=(0) then addvar(%nv%wstimes%+1=b) setnv(wsTimes=%var%b) if (%var%b)>(2) then setequal(c=13~Unable to send WELCOME.WIP. Your wip menu database (c:\dctermw\screen.mdb) may be corrupt. Try deleting this file & logging on again.~SCREEN.MDB Corrupt~0~) jump (wipc) log(--,WIP Logon Attempt: User's screen database corrupt) log(<<,User can delete SCREEN.MDB to correct this.) say(WIP Logon Attempt: User's screen database corrupt) say(User can delete SCREEN.MDB to correct this.) secpause(5) quitbbs endif setequal(b=6) setequal(c=03~Z~) checksum(%var%c) setequal(/nvText=$%aresp%%var%c%C%13%) jump(gChar) if (%aresp%)=(6) then clearscr exec(dsz.com port %PORT% speed %LBAUD% sz %nv%wipfile%) flushout goto(isItHere) endif endif setequal(c=06~Powerboard~Powerboard~%nv%wipfile1%~) jump (wipc) write(Updating client's resource file directory ...) *getrec0 if (%LOCAL%)=(FALSE) then ccarrier if (%aresp%)=(0) then quitbbs endif flushout setequal(c=04~Powerboard~Powerboard~%nv%wipfile1%~) jump (wipc) if (%aresp%)<>(6) then goto (do4over) ComlineInput(45,l) setequal(b=6) setequal(c=%resp%) *tc get(&c,1,1) if (%aresp%)=() then get(&c,2,1000) setequal(c=%aresp%) goto(tc) endif get(&c,%var%b,1000) appendto(fil,aresp: "%aresp%") checksum(%aresp%) setequal(d=%aresp%) get(&c,1,4) if (%var%b)=(7) then get(&c,2,4) upcase(d) if (%aresp%)<>(%var%d) then goto (getrec0) flushout delimit(~) find(&c,:) addvar(%aresp%+1=d) get(&c,%var%d,1000) setequal(c=%aresp%) setnv(files=%var%c) *NextFile setequal(c=%nv%files%) dequeue(c) if (%aresp%)=() then goto (DoneFiles) setnv(file=%aresp%) dequeue(c) setnv(time=%aresp%) dequeue(c) setnv(files=%var%c) setnv(date=%aresp%) setnv(wpath=wip\resource\) seek(%nv%wpath%%nv%file%) if (%aresp%)=(No) then setnv(wpath=display\) seek(%nv%wpath%%nv%file%) endif ifnottrue(goto(NextFile)) ftime(%nv%wpath%%nv%file%) getnumbers(%aresp%) if (%aresp%)<>(%nv%time%) then flushout setequal(c=05~Z~) jump(wipc) if (%aresp%)=(6) then clearscr exec(dsz.com port %PORT% speed %LBAUD% sz %nv%wpath%%nv%file%) flushout endif endif flushout setnv(wpath=) goto(NextFile) *DoneFiles writeln(Done!) setnv(wipwait=50) *INITOBJECTS SETEQUAL(U=0) DELIMIT(`) *RARRAY INC(U) SETEQUAL(L=^:U^) DEQUEUE(L) SETEQUAL(P=%ARESP%) DEQUEUE(L) SETEQUAL(Z=%ARESP%) DEQUEUE(L) SETEQUAL(S=%ARESP%) DEQUEUE(L) JUMP(0FC) IF(%VAR%U)<(%NV%HIGHNDX%) THEN GOTO(RARRAY) if (%nv%wtx%)=(1) then setequal(c=07~welcometext~Welcome to %BBS%~) jump (wipc) endif setequal(d=) setequal(z=) *ExecScreen flushout writeln(Sending ExecScreen command) setequal(c=0A~) jump (wipc) *GetInfo loadsub(control\welchelp.ctl) *geti setequal(y=10) jump (wipask) if (%nv%wiprestreq%)=(1) then goto (notemplate) if (%aresp%)<>(24) then goto (GotAResp) setequal(c=0A~) jump (wipc) if (%local%)=(FALSE) then ccarrier if (%aresp%)=(0) then quitbbs endif setequal(y=20) jump (wipask) if (%nv%wiprestreq%)=(1) then goto (notemplate) if (%aresp%)<>(24) then goto (gotaResp) setequal(c=0A~) jump (wipc) setequal(y=98) jump (wipask) if (%nv%wiprestreq%)=(1) then goto (notemplate) if (%aresp%)=(24) then goto (dowarn) *GotAResp setequal(o=%resp%) *ao ascii setequal(y=%aresp%) if (%var%y)=(6) then get (&o,2,1000) if (%var%y)<>(6) then get (&o,1,1000) setequal(o=%aresp%) len(%aresp%) if (%aresp%)=(1) then if (%var%y)=(6) then setequal(o=) setequal(/resp=%var%o) if (%var%y)=(6) then if (%var%o)<>() then goto (ao) setequal(b=%resp%) writeln( Response from user: "%var%b") if (%var%b)=() then goto (tryWagain) if (%var%b)=(-1) then setnv(wipmode=) setequal(/graphics=ANSI) secpause(2) loadmem(control\open.ctl,goto(dwelc)) endif ccarrier if (%aresp%)=(0) then quitbbs find(&b,;) if (%aresp%)<(1) then goto (noCmnd) setnv(tries=0) addvar(%aresp%+-1=e) addvar(%aresp%+1=f) get(&b,1,%var%e) SetNv(WipC=%aresp%) setnv(cText=) len(%var%b) if (%var%f)<=(%aresp%) then get(&b,%var%f,1000) SetNv(Ctext=%aresp%) endif if (%nv%wipc%)=(name) then setequal(d=%nv%cText%) if (%nv%wipc%)=(nameprompt) then setequal(d=%nv%Ctext%) if (%nv%wipc%)=(password) then setequal(z=%nv%Ctext%) upcase(z) *NoCmnd setnv(wtxt=) if (%resp%)=(logon) then return goto (geti) *GCHAR COMPRINT(%NV%TEXT%) SETEQUAL(A=0) DO COMKEY ASCII IF(%ARESP%)=(21) THEN GOTO(GCHAR) INC(A) IF(&B)=(-1) THEN IF (%RESP%)<>() THEN RET IF(%ARESP%)=(&B) THEN RET IF(&A)>(%nv%wipwait%) THEN RET IF(%RESP%)<>() THEN SETNV(PBACK=%NV%PBACK%%RESP%) DELAY18TH(2) LOOP *WIPC LOCALKEY(1) IFNOTTRUE(GOTO(NOLKEY)) SYSKEYCHECK SETEQUAL(/RESP=) SETEQUAL(/RESP=) *NOLKEY CCARRIER IF(%ARESP%)=(0) THEN GOTO (NOC0) CHECKSUM(%VAR%C) SETEQUAL(B=6) SETNV(TEXT=$%ARESP%%VAR%C%C%13%) SETNV(PBACK=) JUMP(GCHAR) if(%ARESP%)<>(6) THEN FLUSHOUT IF(%ARESP%)<>(6) THEN JUMP(GCHAR) setequal(c=%aresp%) SETEQUAL(/IBUFF=%NV%PBACK%) LEN(%NV%PBACK%) SETEQUAL(/IBUFF0=%ARESP%) SETEQUAL(/ARESP=%VAR%C) RET *NOC0 log(<<,Carrier lost.) quitbbs *PARSEWIP CLEARMEM SETEQUAL(A=0) INPOPEN(%NV%WIPFILE%) DO FENDIF(DONEP) INPREAD IF(%ARESP%)=([Form]) THEN GOTO (READFORM) LOOP *READFORM SETEQUAL(C=0) DO FENDIF(DONEP) INPREAD SETEQUAL(B=%ARESP%) GET(&B,5,2) IF(%ARESP%)=(0I) THEN JUMP(RRESOURCE) IF(%ARESP%)=(1T) THEN JUMP(RRESOURCE) IF(%ARESP%)=(0B) THEN JUMP(RRESOURCE) LOOP *DONEP INPCLOSE SETNV(HIGHNDX=%VAR%C) RET *0FC flushout SETEQUAL(C=0F~%VAR%P~%ARESP%~1~%VAR%Z~%VAR%S~) GOTO(WIPC) *RRESOURCE SETEQUAL(Y=1) IF(%ARESP%)=(0I) THEN SETEQUAL(Y=0) SETEQUAL(W=%ARESP%) DELIMIT(`) DEQUEUE(b) DEQUEUE(b) SETEQUAL(X=%ARESP%) SETEQUAL(S=) IF (&W)<>(0B) then goto (noT) SETEQUAL(V=0) *DE DEQUEUE(B) INC(V) IF(&V)<(11) THEN GOTO(DE) SETEQUAL(S=%ARESP%) *NOT INC(C) SETEQUAL(Z=%VAR%X) IF(&Z)=(welcometext) THEN SETEQUAL(Y=0) IF(&Z)=(welcometext) THEN SETNV(WTX=1) IF(&Y)=(0) THEN SETEQUAL(Z=) SETEQUAL(^%VAR%C=%VAR%X`%VAR%Y`%VAR%Z`%VAR%S) RET *badname writeln(Invalid account info entered. Try again...) setequal(c=13~Invalid account information entered. Please try again.~Invalid Data Entered~1~) jump (wipc) comlineinput(30,l) goto(ExecScreen) *nowelc0 log(!!,Wip Welcome Scr Not Found!) log(!!,Disconnecting!) quitbbs *wipAsk loadsub(control\wipask.ctl) ret *do4over flushout goto (getrec0) *dowarn loadsub(control\wipwarn.ctl) goto (execscreen) NOCTL)log(<<,Excessive logon attempts!) if (%graphics%)=(WIP) then goto (WipExcess) say(&12&&CR&Excessive unsuccessful logon attempts!) secpause(1) linefeed(1) quitbbs *WipExcess setequal(c=13~Excessive unsuccessful logon attempts!~Goodbye~0~) jump (wipc) secpause(2) setequal(/resp=NAME ENTERED: "%NAME%" PASSWORD ATTEMPTED: "%NV%PASSWORD%") loadmem(control\macros\usrbad.ctl) *GCHAR COMPRINT(%NV%TEXT%) SETEQUAL(A=0) DO COMKEY ASCII IF(%ARESP%)=(21) THEN GOTO(GCHAR) INC(A) IF(&B)=(-1) THEN IF (%RESP%)<>() THEN RET IF(%ARESP%)=(&B) THEN RET IF(&A)>(45) THEN RET IF(%RESP%)<>() THEN SETNV(PBACK=%NV%PBACK%%RESP%) DELAY18TH(2) LOOP *WIPC LOCALKEY(1) IFNOTTRUE(GOTO(NOLKEY)) SYSKEYCHECK SETEQUAL(/RESP=) SETEQUAL(/RESP=) *NOLKEY CCARRIER IF(%ARESP%)=(0) THEN GOTO (NOC0) CHECKSUM(%VAR%C) SETEQUAL(B=6) SETNV(TEXT=$%ARESP%%VAR%C%C%13%) SETNV(PBACK=) JUMP(GCHAR) IF(%ARESP%)<>(6) THEN JUMP(GCHAR) SETEQUAL(/IBUFF=%NV%PBACK%) LEN(%NV%PBACK%) SETEQUAL(/IBUFF0=%ARESP%) RET *NOC0 log(<<,Carrier lost.) quitbbs PASSCTL@*GetPass ;Say(What would you like your new password to be?&12&: &15&*) Say(&15&What do you want as your password?&12&: &12&(*) Spaces(20) Say()&14&*) Back(21) cgetpass(%LEN%20%.) if (%resp%)=() then return If(%RESP%)=(%NAME%) then Goto(TooEasy) If(%RESP%)=(/:NAME/) then Goto(TooEasy) SetNv(o=%VAR%O) MenuEqual(o=%FNAME%) If(%RESP%)=(&o) then Goto(TooEasy) MenuEqual(o=%LNAME%) If(%RESP%)=(&o) then Goto(TooEasy) SetEqual(o=%NV%O%) SetNv(o=) Get(%RESP%,1,1) If(%ARESP%)=(?) then Goto(OlHelp) If(%ARESP%)=(/) then Goto(Anywhere) SetNv(passtemp=%RESP%) Say(&CR&&15&Please re-enter your password for verification&12&: &12&(*) Spaces(20) Say()&14&*) Back(21) cgetpass(%LEN%20%.) If(%ARESP%)=(-1) then Goto(NoMatch) If(%RESP%)<>(%NV%PASSTEMP%) then Goto(NoMatch) SetEqual(/PASS=%RESP%) SetNv(passtemp=) If(%NV%NEWUSER%)<>(Yes) then Log(--,Changed Password) return *NoMatch Say(&CR&&12&The two passwords did not match. Please try again...&CR&) Goto(GetPass) *TooEasy Say(&CR&&12&Please enter a more unique, hard-to-guess password.&CR&) Goto(GetPass) *OlHelp SetNv(AtPrompt=Yes) SetNv(Helpoption=119) ; help on password entry LoadSub(olhelp\olhelp.ctl,Goto(ImplementOption)) Goto(GetPass) *Anywhere Len(%RESP%) If(%ARESP%)<(2) then Goto(Bsel) LoadSub(control\macros\anywhere.ctl) Goto(GetPass) READLWIPCTL∩% *help display(display\help\read,/:SEC/) goto (brmail) *Repeat setnv(wss=0) setnv(NoInfo=1) zap(%pbtemp%msgstmp.%node%) setequal(u=0) do inc(u) setequal(z=^:u^) if (%var%z)=() then goto (DoWipScr) appendto(%pbtemp%msgstmp.%node%,%var%z) loop *doWipScr jump (gethilow) loadsub(control\ewipscr.ctl,setnv(wipf=inbox)) arrayread(%pbtemp%msgstmp.%node%) setequal(s=0) setequal(c=14~msgs~100~15~) jump (wipc) setequal(t=0) ;writeln(got back from 14 command.) SetEqual(/nvkilled=) SetEqual(/nvselected=1) SetEqual(/nvlist=NORMAL) ;AddVar(/:SCREENLEN/+-5=q) ;If(&q)>=(19) then SetEqual(q=18) ; screen length cannot be >23 for inbox ;SetEqual(/nvscreenlen=%VAR%Q) setnv(screenlen=15) SetEqual(/nvpage=0) SetEqual(i=1) SetEqual(/nvstart=1) SetEqual(/nvselected=1) SetEqual(/nvkilled=NO) DO SetEqual(y=^:I^) NotIf(&y)=() then SetEqual(/nvmax=%VAR%I) If(&y)=(DELETED) then SetEqual(/nvkilled=YES) If(&y)=() then Goto(AfterLoop) Inc(i) LOOP *AfterLoop SetEqual(/nvtotmax=%NV%MAX%) If(%NV%KILLED%)=(Yes) then SetEqual(y=%NV%MAX%) AddVar(%VAR%Y+-1=y) SetEqual(/nvmax=%VAR%Y) endif SetEqual(/nvkilled=) SetEqual(i=1) SetEqual(y=^:1^) *Repeatme ;writeln(got to repeatme) Goto(Header) *repeat2 ;writeln(going into repeat2...) getmail(%VAR%Y,,%var%w,t,sh) SetEqual(r=%ARESP%) NotIf(%ARESP%)=(Yes) then NotIf(%ARESP%)=(DELETED) then Goto(LNext) If(%MSGNUMBER%)=(0) then Goto (LNext) ;writeln(2 got to repeat2 proc..) SetEqual(a=%MSGNUMBER%) SetLen(a=4) If(%NV%SCREEN%)=(REFRESH) then AddVar(%VAR%I+-%NV%START%=h) AddVar(%VAR%H+4=h) endif ;Say(%VAR%A *) setequal(c=) setnv(msgn=%var%a) If(%REPLIES%)=(REPLIES) then setequal(c=%var%cR ) NotIf(%REPLIES%)=(REPLIES) then setequal(c=%var%c ) NotIf(%MSGRCVD%)=(RECEIVED) then setequal(c=%var%cN ) If(%MSGRCVD%)=(RECEIVED) then setequal(c=%var%c ) If(%MSGATTACH%)=(Y) then setequal(c=%var%cA ) NotIf(%MSGATTACH%)=(Y) then setequal(c=%var%c ) If(%VAR%R)=(DELETED) then setequal(c=%var%cD ) NotIf(%VAR%R)=(DELETED) then setequal(c=%var%c ) MenuEqual(a=%MSGFROM%) SetLen(a=25) setequal(c=%var%c%VAR%A ) SetEqual(a=%MSGDESC%) SetLen(a=33) inc(s) writeln(%nv%msgn% %var%c%var%a) setequal(c=07~msgs~%nv%msgn% %var%c%VAR%A~) jump (wipc) inc(t) NotIf(%NV%SCREEN%)=(REFRESH) then Goto(LNext) If(%NV%SCREEN%)=(REFRESH) then Ret *Done If(%NV%SCREEN%)<>(REFRESH) then SetEqual(y=^:I^) AddVar(%VAR%I+-1=i) SetEqual(/nvmax=%VAR%I) endif *GetKey if (%nv%wss%)=(1) then goto (nowipstuff) setequal(c=07~msgs~-1~) jump (wipc) setequal(c=0F~msgs~Message In-Box~1~1~2~) jump (wipc) setequal(c=0F~RecCount~12~1~0~1~) jump (wipc) setequal(c=0F~Exit~Exit~1~1~3~) jump (wipc) setequal(c=0F~Scrl_UP~~1~1~4~) jump (wipc) setequal(c=0F~Scrl_Dn~~1~1~5~) jump (wipc) setequal(c=0F~Page_Up~~1~1~6~) jump (wipc) setequal(c=0F~Page_Dn~~1~1~7~) jump (wipc) setnv(wss=1) *nowipstuff setequal(c=0A~) jump (wipc) setequal(y=180) jump (wipask) if (%aresp%)=(24) then loadmem(control\timeout.ctl) if (%resp%)=(Exit) then goto (QDisp) setequal(b=%resp%) find(&b,,) if (%aresp%)=(0) then goto (noresp) addvar(%aresp%+1=c) get(&b,%var%c,1000) if (%aresp%)=(-1) then goto (nextp) setnv(selected=%aresp%) goto(done2) *noresp LoadSub(control\macros\checkkey.ctl) If(%RESP%)=(Q) then Goto(Qdisp) if(%RESP%)=() then goto(Qdisp) If(%RESP%)=(-) then SetEqual(/nvme=%VAR%H) If(%NV%START%)<=(%NV%SCREENLEN%) then Goto(FirstPage) AddVar(%NV%START%+-%NV%SCREENLEN%=h) Inc(h) SetEqual(/nvstart=%VAR%H) AddVar(%NV%SELECTED%+-%NV%SCREENLEN%=h) Inc(h) SetEqual(/nvselected=%VAR%H) SetEqual(h=%NV%ME%) SetEqual(/nvme=) ;SetEqual(/nvselected=%VAR%I) SetEqual(/nvscreen=NORMAL) SetEqual(i=%NV%START%) Goto(Header) Endif If(%RESP%)=(<CR>) then Goto(Done2) If(%RESP%)=(2) then Jump(DownArrow) ; down arrow pressed If(%RESP%)=(<CR>) then Goto(Done2) Ascii If(%ARESP%)=(13) then Goto(Done2) Goto(GetKey) *Done2 SetEqual(i=%NV%SELECTED%) SetEqual(/nvi=%VAR%I) SetEqual(i=^:I^) getmail(%var%i,,%var%w) Goto(AgMail) Return *aGMail SetEqual(/nvstatus=) LoadSub(control\macros\showmWip.ctl) setnv(WipfS=) If(%NV%STATUS%)=(INBOX) then goto(inbox) If(%NV%STATUS%)=(INV2) then Goto(inv2) If(%NV%STATUS%)=(REPEAT) then Goto(repeat) If(%NV%STATUS%)=(HEADER) then Goto(header) If(%NV%STATUS%)=(QDISP) then Goto(qdisp) Goto(repeat2) ; *** IS THIS THE RIGHT LABEL? *** *lnext ;writeln(got to lnext...) inc(i) setequal(y=^:I^) if (^:I^)=() then goto (done) SetEqual(/nvme=%VAR%H) AddVar(%VAR%I+-%NV%START%=h) Inc(h) if (&h)<(15) then SetEqual(h=%NV%ME%) Setnv(me=) goto(repeat2) endif SetEqual(h=%NV%ME%) SetEqual(/nvme=) goto(done) if (^:I^)=(DELETED) then goto(lnext) goto (repeat2) *qdisp ;linefeed(1) if (&r)=(10) then goto (endmr) SetEqual(y=^:1^) AddVar(%VAR%Y+-1=y) SetHigh(%VAR%Y) Return *smore setequal(x=1) setequal(s=10) *SetVars SetEqual(i=^:I^) ;getmail(%var%i,,%var%w) Goto(AgMail) *inv2 if (&s)=(10) then goto (abb) say(&CR&&12&Invalid selection! Please try again...) secpause(1) flushout if (&s)=(5) then goto (reading) *abb if (&z)=(0) then goto (brmail) goto (endmr) *firstmsg Say(&CR&&12&This is the first message in your INBOX&CR&) SecPause(1) SetEqual(i=%NV%I%) SetEqual(/nvselected=%VAR%I) Goto(AGMail) *lastmsg Say(&CR&&12&This is the last message in your INBOX&CR&) SecPause(1) SetEqual(i=%NV%I%) SetEqual(/nvselected=%VAR%I) Goto(AGMail) *endmr say(&11&&CR& ══ &14&No more mail found for you to read, %FNAME%&11& ══&CR&) enter Return *getHiLow himsg setequal(f=%ARESP%) setnv(f01=%aresp%) lowmsg setequal(n=%ARESP%) setnv(n=%aresp%) ret *Dequeue DeQueue(q) SetEqual(/RESP=%ARESP%) Len(%VAR%Q) SetEqual(l=%VAR%Q) If(%VAR%L)=(0) then Goto(Disp2) Goto(Process) *enqueue LoadSub(CONTROL\MACROS\enqueue.CTL) Goto(dequeue) *QuickFix AddVar(%NV%START%+-1=i) If(&i)<(1) then SetEqual(i=%NV%TOTMAX%) SetEqual(/nvselected=%VAR%I) Inc(i) AddVar(%VAR%I+-%NV%SCREENLEN%=i) Inc(i) If(&i)<(1) then SetEqual(i=1) SetEqual(/nvstart=%VAR%I) SetEqual(/nvscreen=NORMAL) Goto(Header) endif SetEqual(/nvstart=%VAR%I) SetEqual(/nvscreen=NORMAL) SetEqual(/nvselected=%VAR%I) Goto(Header) *CalcOffset SetEqual(/nvme2=%VAR%U) MultVar(%NV%SCREENLEN%*%NV%PAGE%=u) AddVar(%VAR%I+%VAR%U=i) SetEqual(u=%NV%ME2%) SetEqual(/nvme2=) Ret *Inbox SetEqual(r=10) SetEqual(y=^:1^) AddVar(%VAR%Y+-1=y) SetHigh(%VAR%Y) Inc(y) himsg(/:LASTMSG/) SetEqual(f=%ARESP%) setnv(f01=%aresp%) lowmsg(/:lastmsg/) SetEqual(n=%ARESP%) setnv(n=%aresp%) SetEqual(i=%NV%START%) setequal(/nvsnsearch=1) SetEqual(/nvscreen=NORMAL) SetEqual(/nvscreen=NORMAL) setequal(y=^:I^) Goto(repeat) *Header SetEqual(/nvscreen=NORMAL) setequal(y=^:I^) Goto(Repeat2) *LastPage AddVar(%NV%SCREENLEN%+3=h) AnsiGoto(1,%VAR%H) writeln(Last page of inbox messages.) setequal(c=13~You have reached the last page of Inbox messages.~Last Page~1~) jump (okbox0) SetEqual(h=%NV%ME%) SetEqual(/nvme=) Goto(GetKey) *FirstPage AddVar(%NV%SCREENLEN%+3=h) SetEqual(h=%NV%ME%) SetEqual(/nvme=) SetEqual(/nvstart=1) SetEqual(/nvselected=1) SetEqual(i=1) Goto(Header) *GCHAR COMPRINT(%NV%TEXT%) SETEQUAL(A=0) DO COMKEY ASCII IF(%ARESP%)=(21) THEN GOTO(GCHAR) INC(A) IF(&B)=(-1) THEN IF (%RESP%)<>() THEN RET IF(%ARESP%)=(&B) THEN RET IF(&A)>(50) THEN RET IF(%RESP%)<>() THEN SETNV(PBACK=%NV%PBACK%%RESP%) DELAY18TH(2) LOOP *WIPC LOCALKEY(1) IFNOTTRUE(GOTO(NOLKEY)) SYSKEYCHECK SETEQUAL(/RESP=) SETEQUAL(/RESP=) *NOLKEY CCARRIER IF(%ARESP%)=(0) THEN GOTO (NOC0) CHECKSUM(%VAR%C) SETEQUAL(B=6) SETNV(TEXT=$%ARESP%%VAR%C%C%13%) SETNV(PBACK=) JUMP(GCHAR) IF(%ARESP%)<>(6) THEN JUMP(GCHAR) SETEQUAL(/IBUFF=%NV%PBACK%) LEN(%NV%PBACK%) SETEQUAL(/IBUFF0=%ARESP%) RET *NOC0 log(<<,Carrier lost.) quitbbs *nextp SetEqual(/nvme=%VAR%H) AddVar(%NV%TOTMAX%+-%NV%START%=h) If(&h)<(%NV%SCREENLEN%) then Goto(LastPage) AddVar(%NV%START%+%NV%SCREENLEN%=h) AddVar(%VAR%H+-1=h) SetEqual(/nvstart=%VAR%H) AddVar(%NV%SELECTED%+%NV%SCREENLEN%=h) AddVar(%VAR%H+-1=h) SetEqual(/nvselected=%VAR%H) If(%NV%SELECTED%)>(%NV%TOTMAX%) then SetEqual(/nvselected=%NV%TOTMAX%) SetEqual(h=%NV%ME%) SetEqual(/nvme=) SetEqual(i=%NV%START%) Goto(Header) *wipAsk multicheck if (/:left/)<(4) then seek(%pbtemp%timewarn.%node%) iftrue(goto(ptw)) zap(%pbtemp%timewarn.%node%) setequal(c=13~Less than four minutes remain for this session.~Time Allowance Low~1~) jump (okbox) setequal(/resp=) endif *ptw setequal(/resp=) findfirst(%cpat%*.%node%) if (%aresp%)=() then if (%aresp%)<>(0) then goto (getinput) writeln(Incomming message from another node:) setnv(fil=%cpat%%aresp%) inpopen(%cpat%%aresp%) inpread writeln(%aresp%) setequal(c=13~%aresp%) fendif(nomore) do inpread writeln(%aresp%) setequal(c=%var%c - %aresp%) fendif(nomore) loop *getinput Comlineinput(%var%y,l) ret *okbox strippba(%var%c) setequal(c=%aresp%) Jump (wipc) comlineinput(180,l) if (%aresp%)=(24) then loadmem(control\timeout.ctl) if (%resp%)=() then goto (okbox) setequal(c=0A~) goto (wipc) *nomore setequal(c=%var%c~Instant Message~1~) inpclose kill (%nv%fil%) jump (okbox) goto(ptw) *okbox0 Jump (wipc) comlineinput(180,l) if (%aresp%)=(24) then loadmem(control\timeout.ctl) if (%resp%)=() then goto (okbox) ret DOORSDOCKDOORS MENU - Powerboard 2.00 - Quick Notes On Powerboard, to install a door, all you need to do is to make a batch file in the main BBS directory called DOOR plus the number plus .BAT. Powerboard will then look for that file for doors. Do not attempt to add options to the doors menu for doors - PB will auto detect the DoorX.bat files when you update the displays (by loading the DOORS.MNU in Menucfg then exiting, or by pressing alt-u from the Menucfg main menu) and will add them to the output screen. Refer to Door.Bt for more info. PRESS ANY KEY TO CONTINUE QUESDOC,QUESTIONNAIRES MENU - Powerboard 2.00 - Quick Notes Questionnaires on Powerboard can contain any or all control file commands. Questionnaires reside in the QUES\ directory and are called QUEST plus the number plus .QUE. Answer files are called QUEST plus the number plus .ANS. Powerboard will detect the questionnaires and will add them to the display screens automatically when you update the displays for the questionnaires menu (by loading Ques.mnu then exiting, or by pressing alt-u at the Menucfg main menu). PRESS ANY KEY TO CONTINUE BULLETDOCNBULLETINS MENU - Powerboard 2.00 - Quick Notes On Powerboard, to install a bulletin, simply create a display screen in the DISPLAY\ directory called BULL plus the number plus .ASC. You can also have BULL + number + .ANS and + .RIP. i.e. BULL1.ASC. Powerboard will automatically detect these bulletins (bull1.asc, bull2.asc, etc) and will add them to the bulletins menu display screen automatically when you update the displays (by loading BULLET.MNU in Menucfg then pressing ESC, or by pressing alt-u from the Menucfg main menu). PRESS ANY KEY TO CONTINUE DOORSDEFDemo Door BULLETDEFURequiem About PB Something Hey dude Is there really an opt 5? hello ok opt 8 QUESDEFSysops READCTLº%loadsub(control\exitwip.ctl) *Disp2 delimit( ,;) clearscr ;if (%GRAPHICS%)=(RIP) then comprint(!|*|b0000ZII2280S0002X000|#|#|#) jump(initrip) if (%GRAPHICS%)=(RIP) then defpause(!|1K|S010F|k00|N01|N00|KB4QEB4QE|KB4QEB4QE|S0100|K00I210QE|J10|n2000|M08|fZKQO|c0F|=001EKF01|W00|Y00000209|1B00000207QI03010E0F080700000F07000000|1U00I26YKU0000<>Stop<>S|1B00000207QI03010E0F080700000F07000000|1U6YI2DWKU0000<>Nonstop<>N|1B00000207QI03010E0F080700000F07000000|1UDWI2KUKU0000<>Continue<>C|#|#|#) if (%GRAPHICS%)<>(RIP) then DefPause($7$&0&Send more text$0$&3& &11&S&3&:Stop, &11&N&3&:Nonstop or &11&C&3&:Continue?&12&: &7&) defPif(s:stop,n:nonstop) setequal(n=1) setequal(x=1) *read ;if (%nv%wipmode%)=(1) then loadmem(control\macros\readmwip.ctl) setequal(r=0) setequal(w=1) setactivity(Reading Mail) *rmail notif (&n)=(1) then goto (endmr) ;if they came back... setequal(n=0) *brmail setequal(/nvsnsearch=0) linefeed(1) jump(getHiLow) setequal(y=%VAR%F) setequal(z=0) len(%nv%queue%) notif (%aresp%) = (0) then setequal(/resp=%nv%queue%) goto(stk) endif say(&15&Read Mail Options:&CR&) say(&3&Message number (&11&%var%n&3&) through (&11&%var%f&3&) or) say((&11&L&3&)ast Read, Mail addressed to (&11&Y&3&)ou, (&11&R&3&)everse Order, (&11&S&3&)earch for Text,) say((&11&M&3&)arked Mail, (&11&H&3&)elp, (&11&Q&3&)uit&CR&) setequal(z=0) numbmenuask(%CRON%&3&Which message number or option would you like?&12&: &15&*) bignicesay(m:marked,r:Reverse,q:quit,L:Since last read,s:Search,y:your mail,h:help) *stk setequal(a=%resp%) DEQUEUE(a) setequal(/nvqueue=%var%a) setequal(/resp=%aresp%) bigif(m:marked,r:rev,l:since,s:search,y:Your,h:help,<CR>:qt,q:qt) number(%RESP%) if (%RESP%)=() then goto (ret0) if (%RESP%)=(0) then goto (inv2) iftrue (goto (nread)) goto (inv2) *qt goto (ret0) *help display(display\help\read,/:SEC/) goto (brmail) *nread loadsub(control\macros\nread.ctl) if (&g)=(1) then goto (inv2) goto (repeat) *since loadsub(control\macros\since.ctl) if (&g)=(1) then goto (inv2) goto (repeat) *repeat getmail(%var%y,,%var%w) *aGMail setequal(s=0) if (%MsgNumber%)=(0) then goto (0next) setequal(z=10) notif (%ARESP%)=(Yes) then goto (nope) *banyway clearscr if (%GRAPHICS%)=(RIP) then jump(InitRip) setequal(x=0) setequal(s=0) nicedate(%MSGSNTD%) say(&11&Message &3&%MsgNumber%&11& of &3&%var%f&11& was sent on&3& %ARESP%&11& at &3&*) nicetime(%MSGSNTT%) nicesay(%ARESP%&14&&CR& Sent by: &3&%MSGFROM%&CR&&14& Addressed to: &3&%MSGTO% ) say(&14& Regarding: &3&%MSGDESC% ) nicesay(&14& Status: &3&%MSGPVT%, %MSGRCVD%, Read %MSGRDTIMES% times, %REPLIES%) spause(8) if (%MSGATTACH%)=(Y) then if (%MSGPVT%)=(PRIVATE) then setequal(s=10) say (&12&* &14&File Attached: &3&%MSGATTNAME% *) If(%STOREDEXT%)=() then size(%ATTPAT%%ATTN0%.%ATTEXT%) NotIf(%STOREDEXT%)=() then size(%ATTPAT%%ATTN0%.%STOREDEXT%) Say((%ARESP% bytes -- *) if (%local%)=(TRUE) then goto (localatt) say(Time to download: *) TTime(%ARESP%) Say(%ARESP%)) endif *bk0 if (&s)=(10) then spause(9) say(&8&────────────────────────────────────────────────────────────────────────&CR&&7&) showtxt say() *reading If (&s)=(10) then If (%SEC%)=(100) then Display(display\rdnga100) If (&s)=(10) then NotIf (%SEC%)=(100) then Display(display\rdnga) NotIf (&s)=(10) then If (%SEC%)=(100) then Display(display\rdng100) NotIf (&s)=(10) then NotIf (%SEC%)=(100) then Display(display\rdng) jump(getHiLow) numbmenuask (%CRON%&15&Which reading option or message number?&12&: &14&*) bignicesay(w:switch direction,c:compose message,m:mark,e:edit,q:quit,r:reply,s:Show again,n:next,f:forward thread,p:previous thread,k:kill,o:Forward,h:help) if (%msgattach%)=(Y) then bignicesay(d:Download Attach) If (%SEC%)=(100) then BigNiceSay(u:User Record) bigif (w:swap,c:compose,m:mark,e:edit,o:forw,q:qdisp,s:aGMail,r:reply,p:previous,f:follow,k:kill,n:next,h:help2,u:userrec) if (%msgattach%)=(Y) then bigif (d:downatt) if (%RESP%)=(<CR>) then goto (next) number(%RESP%) iftrue (goto (nread)) setequal(s=5) goto (inv2) *swap ;switch reading directions (-1 is reverse read, 1 is forward read) MultVar(%VAR%w*-1=w) Say(&CR&&12&You are now reading in the *) If(&w)=(1) then Say(forward direction.) NotIf(&w)=(1) then Say(reverse direction.) Say() Goto(reading) *mark loadsub(control\macros\markmess.ctl) goto (repeat) *help2 display(display\help\readn,/:SEC/) goto (reading) *downatt zap(%pbtemp%varr.%NODE%,%var%R) linefeed(1) loadsub(control\DOWNATT.CTL) goto (aGMail) *forw loadsub(control\macros\messforw.ctl) if (&g)=(1) then goto (inv2) goto (repeat) *your loadsub(control\macros\your.ctl) if (%ARESP%)=(ERROR) then goto (endmr) goto (snext) *search loadsub(control\macros\msearch.ctl) if (%RESP%)=(Q) then goto (endmr) notif (%ARESP%)=(ERROR) then goto (snext) goto (endmr) *marked setequal(w=1) setequal(/nvreadtype=1) setequal(u=0) goto (next) *userrec EnufSec(100) IfNotTrue(Goto(inv2)) LoadSub(control\macros\savevars.ctl) *WhichOne Say(&CR&&15&Load User Record of person message is Addressed (&12&T&15&)o or Sent (&12&B&15&)y? &14&*) MenuKey(%CRON%*) BigNiceSay(T:To,B:From) BigIf(T:UTo,B:UFrom,<CR>:AGMail) Say(&CR&&12&Invalid selection. Please try again...) Goto(WhichOne) *UTo SetNv(editor=%MSGTO%) Goto(LoadRec) *UFrom SetNv(editor=%MSGFROM%) *LoadRec ClearScr SetEqual(l=1) LoadSub(control\ued1.ctl) LoadSub(control\macros\restvars.ctl) SetEqual(/nveditor=) Goto(AGMAil) *rev if (&y)=(0) then goto (inv2) setequal(y=%var%f) setequal(w=-1) if (&y)=(0) then goto (inv2) goto (repeat) *snext setequal(/nvSNsearch=1) inc(u) setequal(y=^:U^) if (^:U^)=(MOREMAIL) then loadsub(control\macros\fmore.ctl) if (^:U^)=() then goto (endmr) goto (repeat) *lnext inc(u) setequal(y=^:U^) if (^:U^)=() then goto (endmr) goto (repeat) *marknext inc(u) setequal(y=nv%m%var%u%) setequal(y=%%var%y%prc%) cmpval(%nv%marked%,%var%u) iftrue (goto (endmr)) goto (repeat) *qdisp linefeed(1) if (&r)=(10) then goto (endmr) goto (ret0) *0next if (&r)=(10) then goto (lnext) if (&r)=(20) then goto (snext) if (&y)=(0) then goto (inv2) if (&y)=(-1) then goto (inv2) addvar(%var%y+%var%w=y) if (&y)<=(0) then goto (inv2) if (%var%y)>(%var%f) then goto (inv2) addvar(%msgrec2%+%var%w=t) getmailrec(%var%t,,%var%w) if (%msgnumber%)=(%var%y) then goto (aGMail) goto (repeat) *smore setequal(x=1) setequal(s=10) *next if (%nv%readtype%)=(1) then goto (marknext) if (&r)=(10) then goto (lnext) if (&s)=(0) then goto (smore) if (%nv%snsearch%)=(1) then goto (snext) if (&y)<=(0) then goto (inv2) if (&y)=(-1) then goto (inv2) notif (%MRESP%)=() then goto (sknext) NextMsg(%var%y,%var%w) if (%aresp%)<>(ERROR) then if (%aresp%)<>(0) then goto (nmr) addvar(%var%y+%var%w=y) if (&y)<=(0) then goto (inv2) *psi if (%var%y)>(%var%f) then goto(inv2) if (%var%y)<(%var%n) then goto(inv2) addvar(%msgrec2%+%var%w=t) getmailrec(%var%t,,%var%w) if (%msgnumber%)=(%var%y) then goto (aGMail) goto (repeat) *sknext setequal(y=%MRESP%) if (&y)<=(0) then goto (inv2) if (%var%y)>(%var%f) then goto(inv2) goto (repeat) *kill loadsub(control\macros\killmess.ctl) if (&g)=(0) then goto (repeat) goto (next) *follow if (%REPLIES%)=(NO REPLIES) then goto (nomore) setequal(s=5) setequal(q=%MSGPREV%) if (%MSGPREV%)=(0) then setequal(q=%var%y) nextforward(%var%q,%var%y,/:LASTMSG/) if (%ARESP%)=(0) then goto (nomore) setequal(y=%ARESP%) goto (repeat) *nomore say(&CR&&12&There are no more replies to this message.&CR&) goto (reading) *previous setequal(s=5) if (%MSGPREV%)=(0) then goto (inv2) setequal(y=%MSGPREV%) goto (repeat) *edit loadsub(control\macros\edit.ctl) ;goto (repeat) jump(getHiLow) goto(disp2) *reply loadsub(control\macros\reply.ctl) goto (repeat) *compose LoadSub(control\macros\savevars.ctl) Loadsub(control\macros\enter.ctl) LoadSub(control\macros\restvars.ctl) Goto (repeat) *inv2 if (&s)=(10) then goto (abb) say(&CR&&12&Invalid selection! Please try again...) setequal(/nvqueue=) secpause(1) flushout if (&s)=(5) then goto (reading) *abb if (&z)=(0) then goto (brmail) goto (endmr) *nope if (%ARESP%)=(ERROR) then goto (next) if (%ARESP%)=(DELETED) then goto (next) enufsec(100) iftrue (goto (banyway)) goto (next) *endmr say(&11&&CR& ══ &14&No more mail found for you to read, %FNAME%&11& ══&CR&) enter goto (ret0) *getHiLow himsg setequal(f=%ARESP%) lowmsg setequal(n=%ARESP%) ret *nmr if (%ARESP%)=() then goto (inv2) setequal(y=%aresp%) goto(psi) goto (reading) *abb if (&z)=(0) then goto (brmail) goto (endmr) *nope if (%ARESP%)=(ERROR) then goto (next) if (%ARESP%)=(DELETED) then goto (next) enufsec(100) iftrue (goto (banyway)) goto (next) *endmr say(&11&&CR& ══ &14&No more mail found for you to read, %FNAME%&11& ══&CR&) enter goto (ret0) *getHiLow himsg setequal(f=%ARESP%) lowmsg setequal(n=%ARESP%) ret *nmr if (%ARESP%)=() then goto (inv2) setequal(y=%aresp%) goto(psi) *InitRip if (%graphics%)=(RIP) then say(!|*|1K|S010F|k00|N01|N00|KB4QEB4QE|KB4QEB4QE|S0100|K00I210QE|J10|n2000|M08) say(!|fZKQO|b0000ZII2280S0002X000|#|#|#) endif ret *ret0 if (%nv%wipe%)=() then return setnv(wipe=) setnv(wipmode=1) return *localatt if (%storedext%)=() then say (Stored in %ATTPAT%%ATTN0%.%ATTEXT%)) if (%storedext%)<>() then say (Stored in %ATTPAT%%ATTN0%.%STOREDEXT%)) goto (bk0) WIPWARNCTL█setequal(q=0) if (%nv%wtext%)=() then setnv(wtext=If you do not enter your account information soon, we will disconnect you.) *st0 if (%nv%tries%)=(1) then loadmem(control\timeout.ctl) loadsub(control\wipsound.ctl,setnv(file=wakeup!.wav)) writeln(User not responding. Timeout warning sent to remote ...) setequal(c=13~%nv%wtext%~Timeout Warning~1~) setnv(wtext=) Jump (wipc) comlineinput(180,l) if (%aresp%)=(24) then loadmem(control\timeout.ctl) setequal(/resp=) return *GCHAR COMPRINT(%NV%TEXT%) SETEQUAL(A=0) DO COMKEY ASCII IF(%ARESP%)=(21) THEN GOTO(GCHAR) INC(A) IF(&B)=(-1) THEN IF (%RESP%)<>() THEN RET IF(%ARESP%)=(&B) THEN RET IF(&A)>(%nv%wipwait%) THEN RET IF(%RESP%)<>() THEN SETNV(PBACK=%NV%PBACK%%RESP%) DELAY18TH(2) LOOP *WIPC LOCALKEY(1) IFNOTTRUE(GOTO(NOLKEY)) SYSKEYCHECK SETEQUAL(/RESP=) SETEQUAL(/RESP=) *NOLKEY CCARRIER IF(%ARESP%)=(0) THEN GOTO (NOC0) CHECKSUM(%VAR%C) SETEQUAL(B=6) SETNV(TEXT=$%ARESP%%VAR%C%C%13%) SETNV(PBACK=) JUMP(GCHAR) if(%ARESP%)<>(6) THEN FLUSHOUT IF(%ARESP%)<>(6) THEN JUMP(GCHAR) setequal(c=%aresp%) SETEQUAL(/IBUFF=%NV%PBACK%) LEN(%NV%PBACK%) SETEQUAL(/IBUFF0=%ARESP%) SETEQUAL(/ARESP=%VAR%C) RET *NOC0 log(<<,Carrier lost.) quitbbs WELCHELPCTLcwriteln() writeln(SYSOP: To log on for remote user: Type "name;" followed by the user's name) writeln(and press ENTER, then type "password;" followed by the password and press) writeln(ENTER. Then type "logon" and press ENTER.) writeln() writeln(Example:) writeln(name;Scott Brown) writeln(password;sysopspass) writeln(logon) writeln() return EWIPINFOCTLZ*getinfo if (%nv%noinfo%)=(1) then setnv(noinfo=) goto(retn) endif setnv(tries=0) *geti inc(q) writeln(Waiting for user's response ...) setequal(y=10) jump (wipask) if (%nv%wiprestreq%)=(1) then goto (notemplate) if (%aresp%)<>(24) then goto (GotAResp) setequal(c=0A~) jump (wipc) setequal(y=20) jump (wipask) if (%nv%wiprestreq%)=(1) then goto (notemplate) if (%aresp%)<>(24) then goto (GotAResp) setequal(c=0A~) jump(wipc) setequal(y=98) jump (wipask) if (%nv%wiprestreq%)=(1) then goto (notemplate) if (%aresp%)=(24) then loadsub(control\wipwarn.ctl) *GotAResp setequal(o=%resp%) *ao ascii setequal(y=%aresp%) if (%var%y)=(6) then get (&o,2,1000) if (%var%y)<>(6) then get (&o,1,1000) setequal(o=%aresp%) len(%aresp%) if (%aresp%)=(1) then if (%var%y)=(6) then setequal(o=) setequal(/resp=%var%o) if (%var%y)=(6) then if (%var%o)<>() then goto (ao) setequal(b=%resp%) *NoCmnd setequal(/resp=%var%b) ccarrier if (%aresp%)=(0) then quitbbs if (%var%q)=(2) then return if (%var%b)=() then goto (geti) setnv(tries=0) writeln(response = "%resp%") goto(retn) *GCHAR COMPRINT(%NV%TEXT%) SETEQUAL(A=0) DO COMKEY ASCII IF(%ARESP%)=(21) THEN GOTO(GCHAR) INC(A) IF(&B)=(-1) THEN IF (%RESP%)<>() THEN RET IF(%ARESP%)=(&B) THEN RET IF(&A)>(%nv%wipwait%) THEN RET IF(%RESP%)<>() THEN SETNV(PBACK=%NV%PBACK%%RESP%) DELAY18TH(2) LOOP *WIPC LOCALKEY(1) IFNOTTRUE(GOTO(NOLKEY)) SYSKEYCHECK SETEQUAL(/RESP=) SETEQUAL(/RESP=) *NOLKEY CCARRIER IF(%ARESP%)=(0) THEN GOTO (NOC0) CHECKSUM(%VAR%C) SETEQUAL(B=6) SETNV(TEXT=$%ARESP%%VAR%C%C%13%) SETNV(PBACK=) JUMP(GCHAR) if(%ARESP%)<>(6) THEN FLUSHOUT IF(%ARESP%)<>(6) THEN JUMP(GCHAR) setequal(c=%aresp%) SETEQUAL(/IBUFF=%NV%PBACK%) LEN(%NV%PBACK%) SETEQUAL(/IBUFF0=%ARESP%) SETEQUAL(/ARESP=%VAR%C) RET *NOC0 log(<<,Carrier lost.) quitbbs *PARSEWIP CLEARMEM SETEQUAL(a=0) INPOPEN(%NV%WIPFILE%) DO FENDIF(DONEP) INPREAD if (%ARESP%)=([Form]) THEN GOTO (READFORM) LOOP *READFORM SETEQUAL(C=0) DO FENDIF(DONEP) INPREAD SETEQUAL(B=%ARESP%) GET(&B,5,2) if (%ARESP%)=(0I) THEN JUMP (RRESOURCE) if (%ARESP%)=(1T) THEN JUMP (RRESOURCE) if (%ARESP%)=(0B) THEN JUMP (RRESOURCE) LOOP *DONEP INPCLOSE SETNV(HIGHNDX=%VAR%C) RET *0FC flushout SETEQUAL(C=0F~%VAR%P~%ARESP%~1~%VAR%Z~%VAR%S~) GOTO(WIPC) *RRESOURCE SETEQUAL(Y=1) IF (%ARESP%)=(0I) THEN SETEQUAL(Y=0) SETEQUAL(W=%ARESP%) DELIMIT(`) DEQUEUE(B) DEQUEUE(B) SETEQUAL(X=%ARESP%) SETEQUAL(S=) IF(&W)<>(0B) THEN GOTO(NOT) SETEQUAL(v=0) *DE DEQUEUE(B) INC(V) IF (&V)<(11) THEN GOTO(DE) SETEQUAL(S=%ARESP%) *NOT INC(C) SETEQUAL(Z=%VAR%X) GET(&Z,1,5) IF (%ARESP%)=(nosel) THEN SETEQUAL(Y=0) IF (&Y)=(0) THEN SETEQUAL(Z=) SETEQUAL(^%VAR%C=%VAR%X`%VAR%Y`%VAR%Z`%VAR%S) RET *retn setnv(wippath=) return *wipAsk loadsub(control\wipask.ctl) ret *do4over flushout goto (getrec0) OPENCTL&CarrierL(Y) setequal(/name=) setequal(/alias=) DeLimit( ) SetEqual(q=) jump (InitSetup) CarrierL(N) Jump (GraphDetect) if (%local%)<>(TRUE) then log(--,Remote Connect ----------------------) *DWelc if (%graphics%)=(WIP) then goto (WipW) IF (%GRAPHICS%)=(RIP) THEN COMPRINT(!|*|#|#|#%C%13%%C%10%) Display (DISPLAY\WELCOME) if (%graphics%)=(RIP) then comprint (H) SetEqual (T=0) *CONT Inc (T) SetEqual(B=) if (%var%t)=(5) then loadmem(control\no.ctl) *CONT inc(t) if (%VAR%T)=(5) then loadmem(control\no.ctl) if (%graphics%)=(WIP) then goto (nameE) *AskForName If(%HANDLE%)=(Yes) then Say(&CR&&14&Aliases are allowed on this BBS. You must login under your alias.) SetFill() flushout If(%HANDLE%)<>(Yes) then MenuAsk (%NOCR%%MIN%1%&CR&&15&Please enter your name&12&: &14&*) If(%HANDLE%)=(Yes) then MenuAsk (%NOCR%%MIN%1%&CR&&15&Please enter your login name&12&: &14&*) SetEqual (a=%RESP%) Get(&a,1,1) If(%ARESP%)=(?) then SetNv(helpoption=110) Jump(OlHelp) ; if need help Goto(AskForName) endif SetEqual (b=) Find (%VAR%A, ) NotIf (%ARESP%)=(0) then Goto (CHECK) If(%HANDLE%)=(Yes) then Goto(CHECK) ;allow one-word handles MenuAsk (%MIN%1%&CR&&15& Last name&12&: &14&*) SetEqual (b=%RESP%) *CHECK setequal(d=%var%a) len(%var%b) notif (%aresp%)=(0) then setequal(d=%var%a %var%b) *nameE Namequal (/name=%VAR%D) nameok if (%ARESP%)<>(Yes) then goto (Retryname) SetEqual (d=%NAME%) *STSEEK SetEqual(/ndx=USERFILE.NDX) If(%HANDLE%)=(Yes) then SeekType(a) If(%HANDLE%)<>(Yes) then SeekType(n) SeekUser (%NAME%) if (%ARESP%)=(No) then goto (NotFound) If (%NDLOCK%) = (1) then Loadmem(control\lockout.ctl) MenuEqual (e=%NDPASS%) setequal(/pass=%NDPASS%) SetEqual (f=0) ; Say(&CR&&15&Are you the "%NDNAME%" from "%NDFROM%"? *) ; jump (YesNo) ; If (%RESP%)=(No) then Goto (dupname) if (%graphics%)=(WIP) then goto (ckPass) Say(&CR&&11&Dots will echo instead of actual letters of your password.) *PASSWORD Say(&15&What is your password?&12& ( )&14&*) Back(21) cGetPass (%MIN%1%%LEN%20%.) SetEqual(z=%RESP%) Get(%RESP%,1,1) If(%ARESP%)=(?) then SetNv(e=%VAR%E) SetNv(helpoption=119) Jump(olhelp) SetEqual(e=%NV%E%) SetNv(e=) Goto(Password) endif *ckpass If (&z) = (%VAR%E) then Goto (Ok) inc(f) Log (--,(%NAME%) Password (%RESP%) incorrect...) if (%graphics%)=(WIP) then goto (retryname) If (%VAR%F) = (3) then Goto (lasttry) If (%VAR%F) = (4) then Goto (badpass) beep(1) Say(&CR&&12&Password incorrect. Try again please...&CR&) goto (password) *LASTTRY Say(&CR&&12&This is your last try! Next time you will be logged off!&CR&) goto (password) *NOTFOUND loadmem(control\notfound.ctl) *TRYAGAIN Say(&CR&&12&Try again ...) Log (--,Attempted logon as %NAME%) Goto (Cont) *DUPNAME Display (display\DUPE) Goto (Cont) *BADPASS LoadMem(control\badpass.ctl) *OK SetActivity (Logging On...) Goto (Connect) ;password's OK so let them in... *CONNECT if (%graphics%)=(RIP) then say(!|*|#|#|#) UserLogin(%NDNUMB%,User %NDNUMB%: %NDNAME% Logged On (%BAUD%)) If (%ARESP%)=(ALREADY ON) then Goto (alreadyon) If (/:SEC/)=(%SYSSEC%) then Goto (syssec) ; if (%sec%)=(10) then if (/:timeson/)>(9) then loadsub(control\overl.ctl) *CONCLR ;ClearScr SelArea(1) ; select main conferences EnufSec(%AREASEC%) If(%ARESP%)=(Yes) then SetEqual(/LASTMSG=1) If(%ARESP%)<>(Yes) then selarea(/:lastmsg/) NiceSay(&CR&&14&You are currently in the %AREANAME% Conference!&CR&) endif listfile(areas\farea/:lastmsg/) if (/:lastdown/)<(1) then setequal(/lastdown=1) if (/:lastdown/)>(%maxfarea%) then setequal(/lastdown=1) selfarea(/:lastdown/) if (%filsec%)>(/:sec/) then setequal(/lastdown=1) selfarea(/:lastdown/) AddComma(%CALLERS%) Log(->,Call #%ARESP%, %GRAPHICS%, %NDFROM%, Last: /:LAST/, Sec: /:SEC/) If (/:SUB/)=(Y) then Goto (subscriber) *SECSHOW ; if (/:timeson/)>(2) then loadsub(control\macros\survey.ctl) InpClose fDate(display\newsltr.asc) CmpDate(/:LAST/,%ARESP%) setnv(Ctext=) IfNotTrue( setnv(Ctext=The newsletter has been updated.)) setnv(Qtext=Would you like to view our newsletter?) jump (YesNo2) if (%graphics%)=(WIP) then writeln(View Newsletter? : "%resp%") If (%RESP%) = (No) then Goto (mailchk) loadsub(control\macros\news.ctl) *MAILCHK setnv(fromopen=1) Loadmem(control\secinfo.ctl) *SUBSCRIBER DateOK(/:SUBDATE/) IfNotTrue (goto (secshow)) CmpDate(%DATE%,/:SUBDATE/) IfNotTrue(goto (sok)) Log(--,User's subscription expired.) Display (display\SEXP,/:SEC/) loadsub(control\subread.ctl) secpause(2) Goto (secshow) *SOK if (%nv%wipmode%)=(1) then goto (wSok) Display(display\SUB,/:SEC/) Enter Goto (secshow) *wSok display(display\sub,/:sec/) onekey goto(secshow) *ALREADYON Display(display\ALREADY) Log(<<,User already on another node!) QuitBBS *CHKEOF2 inc(h) Goto (chkeof) *SYSOP ; Jump (DefPrompt) Kill (cnodes.%NODE%,inodes.%NODE%,%pbtemp%tagged.%NODE%,%pbtemp%tagged2.%NODE%,%pbtemp%psys.%node%) SetActivity (SYSOP Logon) Setequal(/Graphics=ANSI) UserLogin(1,SYSTEM OPERATOR Logged On Locally) AddComma(%CALLERS%) Log (->,Call #%ARESP%, %GRAPHICS%, Last: /:LAST/) Goto (secshow) *SYSSEC If (%SYSP%)=() then Goto (conclr) Say(&11&Sysop Password? &15&*) MenuEqual(a=%SYSP%) cGetPass(*) SetEqual(z=%RESP%) If (&z) = (&a) then goto (conclr) Log(!!,Incorrect Sysop Pass (%RESP%)) Say(&12&Incorrect Attempt!) QuitBBS *INITSETUP SetEqual(/GRAPHICS=ASCII) Defpause ($7$&0&[Send more text?]$0$&3& (&11&S&3&)top, (&11&N&3&)onstop or (&11&C&3&)ontinue?&12&: &7&) DefPif (s:stop,n:nonstop) if (%ON%)=(FROM DOOR) then loadmem(control\doorback.ctl) SetEqual (/sec=%NEWSEC%) SetEqual (/SCREENLEN=23) SetActivity (Logging in...) linefeed(1) Clogin (Kill (cnodes.%NODE%,inodes.%NODE%,%pbtemp%tagged.%NODE%,%pbtemp%tagged2.%NODE%,%pbtemp%psys.%node%)) ret *yesno2 flushout if (%nv%wipmode%)<>(1) then goto (nwYn) writeln(Y/N Question: %nv%Qtext%) setequal(c=13~%nv%Ctext% %nv%Qtext%~Yes/No Question~2~) jump (wipc) *gi2 comlineinput(180,l) if (%aresp%)=(24) then log(<<,User did not press a key for a while. Timeout Disc.) display(display\timeout) quitbbs endif *tryr setequal(r=%resp%) ascii if (%aresp%)=(21) then goto (yesno2) if (%aresp%)=(6) then len(%var%r) if (%aresp%)=(1) then goto (gi2) get(&r,2,1000) setequal(/resp=%aresp%) goto (tryr) endif if (%resp%)=(2) then setequal(/resp=Yes) if (%resp%)=(3) then setequal(/resp=No) ret *nwyn say(&15&%nv%Ctext%&CR&) Say(&15&%nv%Qtext% *) *yesno Say(&15&(&12&Y&15&/&12&N&15&)&14&*) Back(4) YesNoAsk(*) ret *GCHAR COMPRINT(%NV%TEXT%) SETEQUAL(A=0) DO COMKEY ASCII IF(%ARESP%)=(21) THEN GOTO(GCHAR) INC(A) IF(&B)=(-1) THEN IF (%RESP%)<>() THEN RET IF(%ARESP%)=(&B) THEN RET IF(&A)>(45) THEN RET IF(%RESP%)<>() THEN SETNV(PBACK=%NV%PBACK%%RESP%) DELAY18TH(2) LOOP *WIPC LOCALKEY(1) IFNOTTRUE(GOTO(NOLKEY)) SYSKEYCHECK SETEQUAL(/RESP=) SETEQUAL(/RESP=) *NOLKEY CCARRIER IF(%ARESP%)=(0) THEN GOTO (NOC0) CHECKSUM(%VAR%C) SETEQUAL(B=6) SETNV(TEXT=$%ARESP%%VAR%C%C%13%) SETNV(PBACK=) JUMP(GCHAR) IF(%ARESP%)<>(6) THEN JUMP(GCHAR) SETEQUAL(/IBUFF=%NV%PBACK%) LEN(%NV%PBACK%) SETEQUAL(/IBUFF0=%ARESP%) RET *NOC0 log(<<,Carrier lost.) quitbbs *GraphDetect ;setequal(/graphics=ANSI) setequal(/graphics=ASCII) if (%LOCAL%)=(TRUE) then SetEqual(/graphics=ANSI) ret endif flushout secpause(1) flushout secpause(1) comsend(!tn) ; say( |) Say( |) Say(Checking graphics protocol . . . *) setequal(a=) secpause(1) comkey notif(%ARESP%)=() then goto (tkys) secpause(1) comkey setequal(k=0) *tkys if(%ARESP%)=(D) then goto (isWIP) if(%ARESP%)=(C) then goto (isWIP) if(%ARESP%)=(-) then goto(isWIP) if(%ARESP%)=(I) then goto (isrip) if(%ARESP%)=() then setequal(a=aps) ; if(%ARESP%)=() then goto (isnone) comkey secpause(1) inc(k) if (%var%k)<(2) then goto (tkys) goto (isnone) *isansi Say(&12&ANSI &15&Graphics Detected) setequal(/graphics=ANSI) ret *isWIP flushout say(&12&Windows Interface Protocol Detected) setequal(/graphics=WIP) ret *isrip flushout Say(&12&RIP&14&scrip &15&Graphics Detected) setequal(/graphics=RIP) ret *isnone flushout if (%VAR%A)=(aps) then goto (isansi) Say(No Graphics Detected) *GraphPrompt Say(&CR&Use (A)NSI Graphics or ASCI(I) Graphics? *) ;Say(&7&Use &12&(&14&A&12&)&7&NSI Graphics or ASCI&12&(&14&I&12&)&7& Graphics? &14&*) MenuKeyP If(%RESP%)=(?) then SetNv(helpoption=140) Jump(OlHelp) Goto(GraphPrompt) Endif If(%RESP%)=(A) then SetEqual(/graphics=ANSI) If(%RESP%)=(R) then SetEqual(/graphics=RIP) If(%RESP%)=(W) then SetEqual(/graphics=WIP) Notif(%RESP%)=(A) then NotIf(%RESP%)=(R) then NotiF(%RESP%)=(W) then Setequal(/graphics=ASCII) ret *OlHelp SetNv(atprompt=Yes) LoadSub(olhelp\olhelp.ctl,goto(implementoption)) Ret *Anywhere Len(%RESP%) If(%ARESP%)<(2) then Goto(Bsel) LoadSub(control\macros\anywhere.ctl) Goto(disp) *retryname if (%nv%wipmode%)=(1) then loadsub(control\wipwelc.ctl,goto(badname)) goto(cont) *NOCARRIER seek (pbdoor.%node%) ifnottrue(quitbbs) inpline(pbdoor.%node%,6) if (%aresp%)<>(0) then doorback(%ARESP%,Back from Door program) kill(pbdoor.%node%) quitbbs *WipW loadsub(control\wipwelc.ctl) goto(cont) DOORBACKCTLúCARRIERL(Y) inpline(pbdoor.%node%,2) setequal(/name=%aresp%) inpline(pbdoor.%Node%,6) notif (%aresp%)=(0) then DoorBack(%ARESP%,Back from Door program) ;get their name from PBDOOR.node setequal(a=/:lastmsg/) if (%var%a)=(0) then setequal(a=1) selarea(%var%a) mcavail(/:defavail/) ListFile (areas\farea/:LASTMSG/) selfarea(/:lastdown/) inpline (pbdoor.%NODE%,9) SetEqual(/GRAPHICS=%ARESP%) if (%graphics%)=(WIP) then setnv(wipmode=1) inpline (pbdoor.%NODE%,13) setequal(a=%ARESP%) Kill (pbdoor.%NODE%) restcarrier CARRIERL(N) find (%Var%a,DOOR) iftrue (Display (display\back)) inpline(%pbtemp%tagtmp.%node%,1) setequal(/nvTotalTime=%aresp%) inpline(%pbtemp%tagtmp.%node%,2) setequal(/nvTotalFree=%aresp%) LoadMem (%Var%A) *NOCARRIER seek (pbdoor.%node%) ifnottrue(quitbbs) inpline(pbdoor.%node%,6) notif (%aresp%)=(0) then doorback(%ARESP%,Back from Door program) kill(pbdoor.%node%) quitbbs WIPRCTL╜setequal(\company=) SetEqual(\LASTT=%TIME%) ; set last time on to current time setequal(>LAST=%DATE%) setequal(\street1=) setequal(\street=) setequal(\from=) setequal(\pass=) setequal(\phone=) setequal(\work=) setequal(\birth=) setequal(\lastchk=%date%) setequal(\defavail=Y) setequal(\wait=Y) setequal(\comp=) setequal(\protocol=N) setequal(\left=%newtime%) setequal(\sec=%newsec%) setequal(\timeson=0) setequal(\uploads=0) setequal(\downloads=0) setequal(\first=%date%) setequal(\sub=N) setequal(\subdate=) setequal(\lastdown=1) setequal(\lastup=1) setequal(\lastmsg=1) setequal(\kdown=0) setequal(\kup=0) setequal(\expert=N) setequal(\screenlen=24) setequal(\graphics=WIP) setequal(\dropped=0) setequal(\chatreq=0) setequal(\cutoff=0) setequal(\zip=) setequal(\country=) setequal(\title=) setequal(\alias=) setequal(\mhsname=) setequal(\bytestoday=0) setequal(\memo=) setequal(\memo2=) setequal(\memo3=) setequal(\memo4=) setequal(\memo5=) setequal(\memo6=) setequal(\int1=0) setequal(\int2=0) setequal(\int3=0) setequal(\int4=0) setequal(\int5=0) setequal(\int6=0) setequal(\chr1=0) setequal(\chr2=0) setequal(\chr3=0) setequal(\doorse=0) setequal(\msent=0) setequal(\expto=0) setequal(\expsec=0) setequal(\subbal=0) setequal(\tl=0) setequal(\fratio=0) setequal(\dailydl=0) setequal(\dailyul=0) setequal(\nbal=0) setequal(\lo=N) setequal(\psys=N) setequal(\itime=N) setequal(\ansmusic=N) return WIPSOUNDCTL9 *isithere0 fdate(WIP\RESOURCE\%nv%file%) setequal(d=%aresp%) seekrep(d,45,47) get(&d,1,1) if (%aresp%)=(0) then get(&d,2,1000) setequal(d=%aresp%) endif ftime(WIP\RESOURCE\%nv%file%) setnv(time=%aresp%) setequal(c=10~%nv%file%~%nv%time%~%var%d~) jump (wipc) comlineinput(60,l) if (%aresp%)=(24) then goto (isithere0) if (%resp%)=(1) then goto (execr) setequal(c=11~Z~) jump (wipc) exec(dsz.com port %port% speed %lbaud% sz WIP\RESOURCE\%nv%file%) secpause(1) flushout *execr setequal(c=12~%nv%file%~) jump (wipc) return *GCHAR COMPRINT(%NV%TEXT%) SETEQUAL(A=0) DO COMKEY ASCII IF(%ARESP%)=(21) THEN GOTO(GCHAR) INC(A) IF(&B)=(-1) THEN IF (%RESP%)<>() THEN RET IF(%ARESP%)=(&B) THEN RET IF(&A)>(200) THEN RET IF(%RESP%)<>() THEN SETNV(PBACK=%NV%PBACK%%RESP%) DELAY18TH(2) LOOP *WIPC LOCALKEY(1) IFNOTTRUE(GOTO(NOLKEY)) SYSKEYCHECK SETEQUAL(/RESP=) SETEQUAL(/RESP=) *NOLKEY CCARRIER IF(%ARESP%)=(0) THEN GOTO (NOC0) CHECKSUM(%VAR%C) SETEQUAL(B=6) SETNV(TEXT=$%ARESP%%VAR%C%C%13%) SETNV(PBACK=) JUMP(GCHAR) if(%ARESP%)<>(6) THEN FLUSHOUT IF(%ARESP%)<>(6) THEN JUMP(GCHAR) setequal(c=%aresp%) SETEQUAL(/IBUFF=%NV%PBACK%) LEN(%NV%PBACK%) SETEQUAL(/IBUFF0=%ARESP%) SETEQUAL(/ARESP=%VAR%C) RET *NOC0 log(<<,Carrier lost.) quitbbs NEWUWIPCTLKsetnv(first=) setactivity(New-user Logon...) log(==,New User (%var%D) Registering...) loadsub(control\wipr.ctl) setequal(/screenlen=24) *DispWipFile setnv(wiprestreq=) setnv(noInfo=1) loadsub(control\ewipscr.ctl,setnv(wipf=newuser)) if (%nv%first%)=(1) then goto (passbd) setequal(c=07~dob~MM-DD-YY~) jump (wipc) setnv(first=1) *passbd setequal(c=0A~) jump (wipc) *GetInfo Flushout setnv(tries=0) writeln(User is filing out the new user registration form . . .) say(Type 'okbtn' when completed ...) *geti setequal(y=10) jump (wipask) if (%nv%wiprestreq%)=(1) then goto (dispwipfile) if (%aresp%)<>(24) then goto (GotaResp) setequal(c=0A~) jump (wipc) setequal(y=20) jump (wipask) if (%nv%wiprestreq%)=(1) then goto (dispwipfile) if (%aresp%)<>(24) then goto (GotAResp) setequal(c=0A~) jump (wipc) setequal(y=98) jump (wipask) if (%nv%wiprestreq%)=(1) then goto (dispwipfile) if (%aresp%)=(24) then if (%nv%tries%)=(1) then loadmem(control\timeout.ctl) loadsub(control\wipsound.ctl,setnv(file=wakeup!.wav)) writeln(User not responding. Timeout warning sent to remote ...) setequal(c=13~If you do not enter some information soon, we will disconnect you.~Timeout Warning~0~) Jump (wipc) setnv(tries=1) endif *GotAResp setequal(o=%resp%) *ao ascii setequal(y=%aresp%) if (%var%y)=(6) then get (&o,2,1000) if (%var%y)<>(6) then get (&o,1,1000) setequal(o=%aresp%) len(%aresp%) if (%aresp%)=(1) then if (%var%y)=(6) then setequal(o=) setequal(/resp=%var%o) if (%var%y)=(6) then if (%var%o)<>() then goto (ao) setequal(b=%resp%) writeln(Response from remote: "%var%b") ccarrier if (%aresp%)=(0) then quitbbs find(&b,;) if (%aresp%)<(1) then goto (noCmnd) addvar(%aresp%+-1=e) addvar(%aresp%+1=f) get(&b,1,%var%e) SetNv(WipC=%aresp%) get(&b,%var%f,1000) SetNv(Ctext=%aresp%) setnv(tries=0) if (%nv%wipc%)=(company) then setequal(\company=%nv%Ctext%) if (%nv%wipc%)=(title) then setequal(\title=%nv%Ctext%) if (%nv%wipc%)=(street1) then setequal(\street1=%nv%Ctext%) if (%nv%wipc%)=(street2) then setequal(\street=%nv%Ctext%) if (%nv%wipc%)=(cityst) then setequal(\from=%nv%Ctext%) if (%nv%wipc%)=(protocol) then setequal(\protocol=%nv%Ctext%) if (%nv%wipc%)=(country) then setequal(\country=%nv%Ctext%) if (%nv%wipc%)=(zipcode) then setequal(\zip=%nv%Ctext%) if (%nv%wipc%)=(alias) then setequal(\alias=%nv%Ctext%) if (%nv%wipc%)=(password) then setequal(\pass=%nv%Ctext%) if (%nv%wipc%)=(homephone) then setequal(\phone=%nv%Ctext%) if (%nv%wipc%)=(workphone) then setequal(\work=%nv%Ctext%) if (%nv%wipc%)=(dob) then setequal(\birth=%nv%Ctext%) if (%nv%wipc%)=(computer) then setequal(\comp=%nv%Ctext%) upcase(z) *NoCmnd if (%resp%)=(okbtn) then goto (donef) goto (geti) *badDob writeln(Incorrect D.O.B. format) setequal(c=13~The date of birth you entered is not in the correct format. Please re-enter.~Invalid D.O.B.~1~) jump (okbox) goto(doAgain) *NotDone writeln(Form not complete...) setequal(c=13~The form has not been filled out completely. Please make sure all pertinent information has been entered.~Form Incomplete~1~) Jump (okbox) goto(DoAgain) *PassTooLong writeln(Password too long. Please select a different one.) setequal(c=13~The password you specified is too long. Please select a different one.~Bad Password~1~) jump (okbox) goto (DoAgain) *diffpass writeln(Please choose a more unique password.) setequal(c=13~Please choose a more unique password.~Password Too Simple~1~) jump (okbox) goto(doagain) *badinfo writeln(Bad information entered. Disconnecting.) log(<<,New User entered bad info) setequal(c=13~Bad information entered. Disconnecting.~Bad Data Entry~0~) jump (wipc) setequal(/resp=) loadmem(control\macros\newbad.ctl) QuitBBS *donef dateok(\:birth\) ifnottrue(goto(badDob)) if (\:birth\)=() then goto (NotDone) if (\:phone\)=() then goto (NotDone) setequal(\DEFAVAIL=Y) len(\:pass\) if (%aresp%)>(20) then goto (PassTooLong) if (\:pass\)=() then goto (NotDone) if (\:from\)=() then goto (NotDone) if (\:from\)=(\:work\) then goto (badinfo) if (\:from\)=(\:phone\) then goto (badinfo) if (\:from\)=(\:street\) then goto (badInfo) if (\:from\)=(\:street1\) then goto (badinfo) if (\:from\)=(/:name/) then goto (badinfo) if (\:pass\)=(\:from\) then goto (diffpass) if (\:pass\)=(\:name\) then goto (diffpass) if (\:pass\)=(\:street\) then goto (diffpass) setequal(c=/:name/) find(&c,\:pass\) iftrue(goto(diffpass)) writeln(Creating records for user in databases...) setequal(c=07~nosel1~Now creating records for you in our databases. Please wait...~) jump (wipc) ;setequal(c=13~Now creating records for you in our databases. This may take a while. Please wait.~Creating Records~0~) ;jump (wipc) seekfile(phones.dat,\:phone\) IfTrue(Jump(Dphone)) setequal(d=/:name/) setequal(\name=%var%d) *CreateIt findsp setequal(a=%aresp%) setequal(g=\:alias\) upcase(g) saveuser(%var%a) setequal(e=%var%D│%var%g│\:PASS\│\:FROM\│%var%a│0%C%13%%C%10%) setlen(e=116) appendtoN(userfile.ndx,%var%e%C%10%) UserLogin(%var%a,User %var%a: %var%d Logged On (%BAUD%)) If (%ARESP%)=(ALREADY ON) then QuitBBS appendto(phones.dat,\:phone\) ;loadsub(control\Exitwip.ctl) loadmem(control\open.ctl,goto (conclr)) *GCHAR COMPRINT(%NV%TEXT%) SETEQUAL(A=0) DO COMKEY ASCII IF(%ARESP%)=(21) THEN GOTO(GCHAR) INC(A) IF(&B)=(-1) THEN IF (%RESP%)<>() THEN RET IF(%ARESP%)=(&B) THEN RET IF(&A)>(45) THEN RET IF(%RESP%)<>() THEN SETNV(PBACK=%NV%PBACK%%RESP%) DELAY18TH(2) LOOP *WIPC LOCALKEY(1) IFNOTTRUE(GOTO(NOLKEY)) SYSKEYCHECK SETEQUAL(/RESP=) SETEQUAL(/RESP=) *NOLKEY CCARRIER IF(%ARESP%)=(0) THEN GOTO (NOC0) CHECKSUM(%VAR%C) SETEQUAL(B=6) SETNV(TEXT=$%ARESP%%VAR%C%C%13%) SETNV(PBACK=) JUMP(GCHAR) IF(%ARESP%)<>(6) THEN JUMP(GCHAR) SETEQUAL(/IBUFF=%NV%PBACK%) LEN(%NV%PBACK%) SETEQUAL(/IBUFF0=%ARESP%) RET *NOC0 log(<<,Carrier lost.) quitbbs *DoAgain setequal(c=0A~) jump (wipc) goto(getInfo) *Dphone writeln(Some of the information entered duplicates data in another user record.) appendto(badnames.bbs,/:name/) appendto(badnames.bbs,\:alias\) log(!!,User entered duplicate info (\:phone\)) setequal(c=13~Information you entered duplicates that of another user. Your account will be reviewed by the SysOp.~Duplicate Info~0~) jump (wipc) setequal(/resp=) loadmem(control\macros\newbad.ctl) *okbox Jump (wipc) *try4 comlineinput(30,l) if (%resp%)=() then goto (try4) ret *wipAsk loadsub(control\wipask.ctl) ret NEWUSERCTLn ;NEWUSER2 FILE setactivity(New-user Logon...) setequal(d=%name%) log(==,New User (%name%) Registering...) *ResetAllVars LoadSub(control\macros\reset.ctl) LoadSub(control\macros\reseta.ctl) setequal(t=0) SetNv(updating=No) ; is user just updating one field? SetNv(newuser=Yes) *ShowMenu ClearScr Display(display\newuser) ; show newuser registration header display If(%HANDLE%)<>(Yes) then Goto(Street) SetEqual(\ALIAS=%NAME%) SetEqual(/ALIAS=%NAME%) *GetTheName Say(&CR&&15& Enter your real first and last name&12&: &14&*) MenuAsk(%CRON%%NOCR%%MIN%1%*) If(%RESP%)=(<CR>) then Goto(ShowMenu) SetEqual (a=%RESP%) Get(&a,1,1) ; If(%ARESP%)=(?) then ; SetNv(helpoption=110) ; Jump(OlHelp) ; if need help ; Goto(AskForName) ; endif SetEqual (b=) Find (%VAR%A, ) If (%ARESP%)<>(0) then Say() Goto (CHECK) endif MenuAsk (%MIN%1%&CR&&15& Last name&12&: &14&*) SetEqual (b=%RESP%) *CHECK Say() setequal(d=%var%a) len(%var%b) notif (%aresp%)=(0) then setequal(d=%var%a %var%b) Namequal (/name=%VAR%D) nameok if (%ARESP%)<>(Yes) then goto (CONT) SetEqual (d=/:NAME/) setequal(\name=/:name/) SeekType(n) SeekUser(%VAR%D) If(%ARESP%)<>(No) then Goto(NameExists) Goto(Alias) *ShowInfo ClearScr NiceEqual(d=/:NAME/) NameEqual(/NAME=%VAR%D) Display(display\newuser) SetEqual(i=1) If(%HANDLE%)=(Yes) then Say(&12&%VAR%I.&15& Alias: &14&\:ALIAS\) Inc(i) endif Say(&12&%VAR%I.&15& Street (1/2): &14&\:STREET1\) Inc(i) Say(&12&%VAR%I.&15& Street (2/2): &14&\:STREET\) Inc(i) Say(&12&%VAR%I.&15& City, ST: &14&\:FROM\) Inc(i) Say(&12&%VAR%I.&15& ZIP Code: &14&\:ZIP\) Inc(i) Say(&12&%VAR%I.&15& Country: &14&\:COUNTRY\) Inc(i) Jump(DotsInstead) Say(&12&%VAR%I.&15& Password: &14&%NV%PASSDOTS%) SetNv(passdots=) Inc(i) Say(&12&%VAR%I.&15& Home Phone: &14&\:PHONE\) Inc(i) Say(&12&%VAR%I.&15& Work Phone: &14&\:WORK\) Inc(i) Say(&12&%VAR%I.&15&*) If(&i)=(9) then Say( *) Say( Company: &14&\:COMPANY\) Inc(i) Say(&12&%VAR%I.&15& Birthdate: &14&\:BIRTH\) Inc(i) Say(&12&%VAR%I.&15& Protocol: &14&\:PROTOCOL\) Inc(i) Say(&12&%VAR%I.&15& Computer: &14&\:COMP\) Inc(i) Say(&12&%VAR%I.&15& Screen Length: &14&\:SCREENLEN\) SetNv(updating=Yes) Say(&CR&&15&Enter Selection to Change (ENTER=continue)&12&: &14&*) MenuAsk(%CRON%%LEN%2%*) If(%RESP%)=(<CR>) then Goto(CreateIt) If(%HANDLE%)=(Yes) then BigIf(1:Alias,2:Street,3:Street2,4:City,5:ZIP,6:Country,7:Pass,8:Phone,9:Work,10:CompanyName,11:Birth,12:Protocol,13:Computer,14:ScreenLength) If(%HANDLE%)<>(Yes) then BigIf(1:Street,2:Street2,3:City,4:ZIP,5:Country,6:Pass,7:Phone,8:Work,9:CompanyName,10:Birth,11:Protocol,12:Computer,13:ScreenLength) *EvenMore If(^:5^)=(FirstTime) then Goto(MoreImportantFix) Goto(FixMenu) Return *Alias If(%HANDLE%)<>(Yes) then Goto(Street) LoadSub(control\macros\alias.ctl) SetEqual(\ALIAS=/:ALIAS/) If(%NV%UPDATING%)<>(Yes) then Goto(Street) Goto(ShowInfo) *street LoadSub(control\macros\street.ctl) SetEqual(\STREET1=/:STREET1/) SetEqual(\STREET=/:STREET/) If(%NV%UPDATING%)<>(Yes) then Goto(City) Goto(ShowInfo) *Street2 Say() LoadSub(control\macros\street.ctl,goto(street2)) SetEqual(\STREET=/:STREET/) if (%nv%updating%)<>(Yes) then goto (city) Goto(ShowInfo) if (/:from/)=(\:street\) then goto(Fake) ;goto(Evenmore) *city Say() LoadSub(control\macros\city.ctl) SetEqual(\FROM=/:FROM/) if (/:from/)=(\:street\) then goto(Fake) update If(%NV%UPDATING%)<>(Yes) then Goto(ZIP) Goto(ShowInfo) *ZIP Say(&CR&&15&Enter your ZIP code&12&: &14&*) Say(#####-####*) Back(10) Picture(#####*) Say(-*) SetNv(buff=%RESP%) MenuAsk(%CRON%%LEN%4%*) If(%RESP%)=(<CR>) then SetEqual(/RESP=%NV%BUFF%) SetNv(buff=) Goto(DoZip) endif Number(%RESP%) IfTrue(SetEqual(/RESP=%NV%BUFF%-%RESP%)) IfNotTrue(SetEqual(/RESP=%NV%BUFF%)) *DoZip SetEqual(\ZIP=%RESP%) If(%NV%UPDATING%)<>(Yes) then Goto(Country) Goto(ShowInfo) *Country SetEqual(a=USA) SetLen(a=30) Say(&CR&&15&Please enter your country&12&: (*) Spaces(30) Say()&14&*) Back(31) SetFill(%VAR%A) MenuAsk(%CRON%%LEN%30%*) SetEqual(\COUNTRY=%RESP%) If(%NV%UPDATING%)<>(Yes) then Goto(Pass) Goto(ShowInfo) ;Enter ;Goto(EvenMore) *PASS Say() LoadSub(control\macros\pass.ctl) SetEqual(\PASS=/:PASS/) If(%NV%UPDATING%)<>(Yes) then Goto(Phone) Goto(ShowInfo) *phone Say() LoadSub(control\macros\hphone.ctl) SetEqual(\PHONE=/:PHONE/) *BadPhoneSeek seekfile(phones.dat,/:phone/) IfTrue(Jump(Dphone)) If(%NV%UPDATING%)<>(Yes) then Goto(Work) Goto(ShowInfo) *work Say() Say(&15& Do you have a work phone number? (&12&Y&15&/&12&N&15&)&14&*) Back(4) YesNoAsk(*) If(%RESP%)<>(Yes) then Goto(Birth) *Work2 LoadSub(control\macros\work.ctl) SetEqual(\WORK=/:WORK/) SetNv(intl=) If(%NV%UPDATING%)<>(Yes) then Goto(CompanyName) Goto(ShowInfo) *companyname Say() LoadSub(control\macros\coname.ctl) SetEqual(\COMPANY=/:COMPANY/) If(%NV%UPDATING%)<>(Yes) then Goto(Birth) Goto(ShowInfo) *Birth Say(&CR&&15& Please enter your birthdate&12&: &14&*) Picture(##-##-##) update repeating(%resp%) iftrue(goto (fake)) dateok(%resp%) ifnottrue(goto (fake)) setequal(\BIRTH=%RESP%) If(%NV%UPDATING%)<>(Yes) then Goto(Protocol) Goto(ShowInfo) *Protocol LoadSub(control\macros\defprot.ctl) SetEqual(\PROTOCOL=/:PROTOCOL/) If(%NV%UPDATING%)<>(Yes) then Goto(Computer) Goto(ShowInfo) *Computer Say(&CR&&15&Enter the type of computer you are using&12&: &14&*) Ask(%MIN%1%%LEN%72%*) NiceEqual(>COMP=%RESP%) NiceEqual(/COMP=%RESP%) setequal(\WAIT=N) If(%NV%UPDATING%)<>(Yes) then Goto(ScreenLength) Goto(ShowInfo) *ScreenLength Say() LoadSub(control\macros\scrlen.ctl) SetEqual(\SCREENLEN=/:SCREENLEN/) ;If(%NV%UPDATING%)<>(Yes) then Goto(BadPhoneSeek) Goto(ShowInfo) Goto(ShowInfo) Say(ABOUT TO CREATE RECORDS) Enter *CreateIt AnsiGoto(1,20) setequal(\defavail=Y) say(&14&Please wait while your records are created.*) findsp Say(.*) setequal(a=%aresp%) saveuser(%var%a) Say(.*) setequal(g=\:alias\) upcase(g) upcase(d) setequal(e=%var%D│%var%g│\:PASS\│\:FROM\│%var%a│0%C%13%%C%10%) setlen(e=116) appendtoN(userfile.ndx,%var%e%C%10%) NiceEqual(d=%VAR%D) If(%HANDLE%)=(Yes) then Log(==, Name: /:NAME/ Alias: /:ALIAS/) If(%HANDLE%)<>(Yes) then Log(==, Name: /:NAME/) Log(==, Street (1/2): /:STREET1/) Log(==, Street (2/2): /:STREET/) Log(==, Home Phone: \:PHONE\) Log(==, Work Phone: \:WORK\) Log(==, From: /:FROM/) Log(==, ZIP Code: \:ZIP\) Log(==, Company: /:COMPANY/) Log(==, Birthdate: \:BIRTH\) Log(==, Password: /:PASS/) appendto(phones.dat,\:phone\) SetNv(newuser=) UserLogin(%var%a,User %var%a: %var%d Logged On (%BAUD%)) If (%ARESP%)=(ALREADY ON) then QuitBBS say( |) eline(55) seekuser(%var%D) ClearScr Display(display\help\bbshlp) ; show Help on Using BBS screen loadmem(control\open.ctl,goto (conclr)) *BADPASS Jump(BotLine) AnsiGoto(13,13) Beep(1) say(&7&>&12&The passwords did not match. Please try again...&7&<) goto (morepass) *fake ClearScr Beep(3) Say(&12&FALSE INFORMATION ENTERED!!!! YOU WILL NOW BE LOCKED OUT!!!) Say((It is possible you entered the same thing for your street address as you put) Say(for your city/state.)) Beep(3) Say(&CR&&11&Enter One Line Reason Why You Entered False Information:) Say(&3&[&7&░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░&3&]&12&*) Back(53) Ask (*%MIN%1%%LEN%52%) LoadMem(control\macros\newbad.ctl) ; new user logged on with false info *inv inc(t) if (&t)=(2) then goto (fake) goto(city) *bp Jump(BotLine) AnsiGoto(13,13) Beep(1) say (&7&>&12&Please enter a more unique, hard to guess password.&7&<) goto (Morepass) *Dphone LoadMem(control\macros\badphone.ctl) *NameExists Say(&CR&&12&There is already a user with that name in our user file. Please try again,) Say(using your middle initial.) Log(--,User attempted to logon new with real name %VAR%D) Goto(GetTheName) *DotsInstead LoadSub(control\macros\passdots.ctl) Ret SYSOPMNUf*disp SetActivity (Sysop Menu) setnv(wiprestreq=) delimit( ,;) ;---PowerStak Block 1 setnv(didwip=) len(%nv%queue%) notif (%aresp%) = (0) then setequal(/resp=%nv%queue%) goto(stk) ;If something in the stack then... endif ;---PowerStak Block 1 End--- if (/:EXPERT/)=(Y) then goto (exp0) *sdisp if (%graphics%)<>(WIP) then setnv(wipmode=) if (%nv%wipmode%)=(1) then if (%nv%norefresh%)=(1) then setnv(jExec=1) setnv(file=sysop) seek(display\sysop/:sec/.ans) iftrue(setnv(file=sysop/:sec/)) setnv(NoInfo=1) setnv(asciiequiv=1) loadsub(control\newdisp.ctl) *prompt setnv(norefresh=) say (%MIN%1%&0&$7$%CACT%$0$&15& %LEFT% Minutes Remain. Please select, %FNAME%&12&: &14&$0$*) if (%nv%didwip%)<>(1) then cask(%CRON%*) if (%nv%didwip%)=(1) then jump (wipask) setnv(wipe=) ;---PowerStak Block 2 *stk menuequal(a=%resp%) DEQUEUE(a) setequal(/nvqueue=%var%a) Setequal(/resp=%aresp%) ;---PowerStak Block 2 End--- Get(%RESP%,1,1) If(%ARESP%)=(/) then Goto(Anywhere) If(%ARESP%)=(?) then Goto(OlHelp) MenuEqual(/RESP=%RESP%) BigIf (CHAT:CHAT,VF:VIEWFILE,<CR>:SDISP,RELOG:RELOGON,G:GOODBYE,?:OLHELP,X:EXP,V:VIEWLOG,S:SHELL,K:KILL,D:DOWN,O:VNO,Q:QT,F:FIL,M:MS,E:ED,N:NEWS,EX:EXC) if (%resp%)=(CTL) then clearscr syscontrol (3) endif goto (badsel) *boot exec(\dos\boote.com) *badsel loadsub(control\macros\badsel.ctl) ;Clear Stack on Error! ;---PowerStak Block 3 setequal(/nvqueue=) ;---PowerStak Block 3 End goto (disp) *wipask setequal(y=90) loadsub(control\wipask.ctl) if (%nv%wiprestreq%)=(1) then goto (disp) if (%aresp%)<>(24) then goto (gb) loadsub(control\wipask.ctl,goto(twarn)) goto (wipask) *gb setEqual(/resp=%resp%) if (%resp%)=() then setequal(/resp=<CR>) writeln(%resp%) ret *wdisp if (%nv%wipe%)=() then goto (disp) setnv(wipe=) setnv(wipmode=1) goto (disp) *Anywhere Len(%RESP%) If(%ARESP%)<(2) then Goto(Bsel) LoadSub(control\macros\anywhere.ctl) Goto(disp) *exp0 if (%nv%wipmode%)=(1) then loadsub(control\exitwip.ctl) goto(prompt) *CHAT LoadSub(CONTROL\MACROS\MCHAT.CTL) Goto(Disp) *VIEWFILE LoadSub(CONTROL\MACROS\VIEWFILE.CTL) Goto(Disp) *RELOGON LoadMem(CONTROL\OPEN.CTL) *GOODBYE LoadSub(CONTROL\MACROS\BYE.CTL) Goto(Disp) *OLHELP LoadSub(OLHELP\SYSOP.MNU) Goto(Disp) *EXP LoadSub(CONTROL\MACROS\EXPERT.CTL) Goto(Disp) *VIEWLOG LoadSub(CONTROL\MACROS\VIEWLOGS.CTL) Goto(Disp) *SHELL EnufSec(100) IfNotTrue(Goto(BSel)) LoadSub(CONTROL\MACROS\SHELL.CTL) Goto(Disp) *KILL LoadSub(CONTROL\MACROS\KILLNODE.CTL) Goto(Disp) *DOWN LoadSub(CONTROL\MACROS\NODEDOWN.CTL) Goto(Disp) *VNO LoadSub(CONTROL\MACROS\VIEWNODE.CTL) Goto(Disp) *QT LoadMem(CONTROL\MAIN.MNU) *FIL LoadMem(CONTROL\FILES.MNU) *MS LoadMem(CONTROL\MESS.MNU) *ED LoadSub(CONTROL\UEDIT.CTL) Goto(Disp) *NEWS LoadSub(CONTROL\MACROS\NEWSEDIT.CTL) Goto(Disp) *EXC LoadSub(CONTROL\MACROS\EXEC.CTL) Goto(Disp) QUESMNU+ *disp delimit( ,;) setnv(wiprestreq=) SetActivity (Quest. Menu) ;---PowerStak Block 1 len(%nv%queue%) notif (%aresp%) = (0) then setequal(/resp=%nv%queue%) goto(stk) ;If something in the stack then... endif ;---PowerStak Block 1 End--- setnv(didwip=) if (/:Expert/)=(Y) then linefeed(1) if (/:EXPERT/)=(Y) then goto (exp0) *sdisp if (%graphics%)<>(WIP) then setnv(wipmode=) if (%nv%wipmode%)=(1) then if (%nv%norefresh%)=(1) then setnv(jExec=1) SetNv (File=ques) Seek (display\ques/:sec/.ans) IfTrue (SetNv(file=ques/:sec/)) SetNv (NoInfo=1) setnv(asciiequiv=1) LoadSub (Control\NewDisp.Ctl) *prompt setnv(norefresh=) say (&0&$7$%CACT%$0$&15& %LEFT% Minutes Remain. Please select, %FNAME%&12&: &14&$0$*) if (%nv%didwip%)<>(1) then cask(%CRON%*) if (%nv%didwip%)=(1) then jump (wipask) ;---PowerStak Block 2 *stk menuequal(a=%resp%) DEQUEUE(a) setequal(/nvqueue=%var%a) setequal(/resp=%aresp%) ;---PowerStak Block 2 End--- Get(%RESP%,1,1) If(%ARESP%)=(/) then Goto(Anywhere) If(%ARESP%)=(?) then Goto(OlHelp) MenuEqual(/RESP=%RESP%) BigIf (G:GOODBYE,Q:MAIN,?:OLHELP,<CR>:SDISP,X:EXP) number(%RESP%) if (%ARESP%)=(No) then goto (bsel) say(&7&) seek(ques\QUEST%RESP%.que) if (%ARESP%)=(No) then goto (bsel) setnv(wipe=) if (%nv%wipmode%)=(1) then loadsub(control\exitwip.ctl) loadsub(ques\QUEST%RESP%.que) if (%nv%wipe%)=() then goto (disp) setnv(wipe=) setnv(wipmode=1) goto (disp) loadsub(ques\QUEST%RESP%.que) goto (disp) *bsel loadsub(control\macros\badsel.ctl) ;Clear Stack on Error! ;---PowerStak Block 3 setequal(/nvqueue=) ;---PowerStak Block 3 End goto (disp) *wipask setequal(y=90) loadsub(control\wipask.ctl) if (%nv%wiprestreq%)=(1) then goto (disp) if (%aresp%)<>(24) then goto (gb) loadsub(control\wipask.ctl,goto(twarn)) goto (wipask) *gb setEqual(/resp=%resp%) if (%resp%)=() then setequal(/resp=<CR>) writeln(%resp%) ret *Anywhere Len(%RESP%) If(%ARESP%)<(2) then Goto(Bsel) LoadSub(control\macros\anywhere.ctl) Goto(disp) *exp0 if (%nv%wipmode%)=(1) then loadsub(control\exitwip.ctl) goto(prompt) *GOODBYE EnufSec(10) IfNotTrue(Goto(BSel)) LoadSub(CONTROL\MACROS\BYE.CTL) Goto(Disp) *MAIN LoadMem(CONTROL\MAIN.MNU) *OLHELP LoadSub(OLHELP\QUES.MNU) Goto(Disp) *EXP LoadSub(CONTROL\MACROS\EXPERT.CTL) Goto(Disp) MAINMNU┼*Disp setnv(wiprestreq=) delimit( ,;) SetActivity (Main Menu) ;---PowerStak Block 1 len(%nv%queue%) notif (%aresp%) = (0) then setequal(/resp=%nv%queue%) goto(stk) ;If something in the stack then... endif ;---PowerStak Block 1 End--- *Disp2 setnv(didwip=) if(/:EXPERT/)=(Y) then linefeed(1) if(/:EXPERT/)=(Y) then Goto (exp0) *sdisp if (%graphics%)<>(WIP) then setnv(wipmode=) if (%nv%wipmode%)=(1) then if (%nv%norefresh%)=(1) then setnv(jExec=1) SetNv (File=main) Seek (display\main/:sec/.ans) IfTrue (SetNv(file=main/:sec/)) SetNv (NoInfo=1) setnv (asciiequiv=1) LoadSub (Control\NewDisp.Ctl) *Prompt setnv(norefresh=) Say(&14&(%AREANAME% Conference)) Say (%CRON%&0&$7$%CACT%$0$&15& %LEFT% Minutes Remain. Please select, %FNAME%&12&: &14&$0$*) if (%nv%didwip%)<>(1) then cask (%CRON%*) if (%nv%didwip%)=(1) then jump (wipask) ;---PowerStak Block 2 *stk menuequal(a=%resp%) DEQUEUE(a) setequal(/nvqueue=%var%a) setequal(/resp=%aresp%) ;---PowerStak Block 2 End--- Get(%RESP%,1,1) If(%ARESP%)=(/) then Goto(Anywhere) ;if global command MenuEqual(/RESP=%RESP%) BigIf (G:BYE,?:OLHELP,<CR>:SDISP,X:EXP,P:PAGE,Y:STATS,N:NEWS,C:CMNT,B:BMN,Q:QMN,F:FMN,M:MMN,D:DMN,L:LIST,@:SMN,WHO:WHO,CHAT:CHAT,FIND:FND,BANK:BNK,S:SL0) Number(%RESP%) IfTrue(goto(ChgConf)) Goto (bsel) *Anywhere Len(%RESP%) If(%ARESP%)<(2) then Goto(Bsel) LoadSub(control\macros\anywhere.ctl) Goto(disp) *bSel LoadSub(control\macros\badsel.ctl) ;Clear Stack on Error! ;---PowerStak Block 3 setequal(/nvqueue=) ;---PowerStak Block 3 End Goto (disp) *ChgConf SetEqual(z=%RESP%) LoadSub(control\macros\CHGZ.CTL) Goto(disp) *LogonPage SetEqual(/PAGE=No) Goto(PAGE) *wipask setequal(y=90) loadsub(control\wipask.ctl) if (%nv%wiprestreq%)=(1) then goto (disp) if (%aresp%)<>(24) then goto (gb) loadsub(control\wipask.ctl,goto(twarn)) goto (wipask) *gb setEqual(/resp=%resp%) if (%resp%)=() then setequal(/resp=<CR>) writeln(%resp%) ret *exp0 if (%nv%wipmode%)=(1) then loadsub(control\exitwip.ctl) goto(prompt) *SL1 EnufSec(10) IfNotTrue(Goto(BSel)) LoadSub(CONTROL\ONHELP.CTL) Goto(Disp) *SL2 EnufSec(10) IfNotTrue(Goto(BSel)) LoadSub(CONTROL\FIRST.CTL) Goto(Disp) *DQ SetEqual(q=) SetEqual(l=0) Goto(Disp) *BYE EnufSec(10) IfNotTrue(Goto(BSel)) LoadSub(CONTROL\MACROS\BYE.CTL) Goto(Disp) *OLHELP LoadSub(OLHELP\MAIN.MNU) Goto(Disp) *EXP EnufSec(10) IfNotTrue(Goto(BSel)) LoadSub(CONTROL\MACROS\EXPERT.CTL) Goto(Disp) *PAGE EnufSec(10) IfNotTrue(Goto(BSel)) LoadSub(CONTROL\MACROS\PAGE.CTL) Goto(Disp) *STATS EnufSec(10) IfNotTrue(Goto(BSel)) LoadSub(CONTROL\MACROS\STATS.CTL) Goto(Disp) *NEWS EnufSec(10) IfNotTrue(Goto(BSel)) LoadSub(CONTROL\MACROS\NEWS.CTL) Goto(Disp) *CMNT EnufSec(10) IfNotTrue(Goto(BSel)) LoadSub(CONTROL\MACROS\COMMENT.CTL) Goto(Disp) *BMN EnufSec(10) IfNotTrue(Goto(BSel)) LoadMem(CONTROL\BULLET.MNU) *QMN EnufSec(10) IfNotTrue(Goto(BSel)) LoadMem(CONTROL\QUES.MNU) *FMN EnufSec(10) IfNotTrue(Goto(BSel)) LoadMem(CONTROL\FILES.MNU) *MMN EnufSec(10) IfNotTrue(Goto(BSel)) LoadMem(CONTROL\MESS.MNU) *DMN EnufSec(20) IfNotTrue(Goto(BSel)) LoadMem(CONTROL\DOORS.MNU) *LIST EnufSec(110) IfNotTrue(Goto(BSel)) LoadSub(CONTROL\MACROS\LIST.CTL) Goto(Disp) *SMN EnufSec(100) IfNotTrue(Goto(BSel)) LoadMem(CONTROL\SYSOP.MNU) *WHO EnufSec(20) IfNotTrue(Goto(BSel)) LoadSub(CONTROL\MACROS\MWHO.CTL) Goto(Disp) *CHAT EnufSec(20) IfNotTrue(Goto(BSel)) LoadSub(CONTROL\MACROS\MCHAT.CTL) Goto(Disp) *FND LoadSub(CONTROL\MACROS\FIND.CTL) Goto(Disp) *BNK EnufSec(20) IfNotTrue(Goto(BSel)) LoadSub(CONTROL\MACROS\BANK.CTL) Goto(Disp) *SL0 EnufSec(10) IfNotTrue(Goto(BSel)) LoadSub(CONTROL\MACROS\SYSINFO.CTL) Goto(Disp) DOORSMNU╕*disp SetActivity (Doors Menu) setnv(wiprestreq=) Seek(farea/:lastmsg/\doors.mnu) IfTrue(loadmem(farea/:lastmsg/\doors.mnu)) delimit( ,;) ;---PowerStak Block 1 len(%nv%queue%) notif (%aresp%) = (0) then setequal(/resp=%nv%queue%) goto(stk) ;If something in the stack then... endif ;---PowerStak Block 1 End--- setnv(didwip=) if (/Expert)=(Y) then linefeed(1) if (/EXPERT)=(Y) then goto (exp0) *sdisp if (%graphics%)<>(WIP) then setnv(wipmode=) if (%nv%wipmode%)=(1) then if (%nv%norefresh%)=(1) then setnv(jExec=1) setnv(file=doors) seek(display\doors/:sec/.ans) iftrue(setnv(file=doors/:sec/)) setnv(NoInfo=1) setnv(asciiequiv=1) loadsub(control\newdisp.ctl) *prompt setnv(norefresh=) Jump(GETCTLNAME) say (&0&$7$%CACT%$0$&15& %LEFT% Minutes Remain. Please select, %FNAME%&12&: &14&$0$*) if (%nv%didwip%)<>(1) then cask(%CRON%*) if (%nv%didwip%)=(1) then jump (wipask) ;---PowerStak Block 2 *stk setequal(a=%resp%) DEQUEUE(a) setequal(/nvqueue=%var%a) setequal(/resp=%aresp%) ;---PowerStak Block 2 End--- Get(%RESP%,1,1) If(%ARESP%)=(/) then Goto(Anywhere) If(%ARESP%)=(?) then Goto(OlHelp) MenuEqual(/RESP=%RESP%) BigIf (G:GOODBYE,Q:MAIN,?:OLHELP,<CR>:SDISP,X:EXP) number(%RESP%) ifNotTrue( goto (bsel)) seek(%NV%PREFIX%%RESP%.Bat) ifnottrue(goto (bsel)) clearscr Display(Display\%NV%PREFIX%%RESP%) Log(--,Executing Door #%RESP%) FixFile (door.bt,door.bat) setequal (a=/:DOORS/) inc(a) setequal(/DOORSE=%VAR%A) if (%nv%wipmode%)=(1) then loadsub(control\exitwip.ctl) Say(&14&&CR&Please wait, Opening Door #%resp% . . .*) mcavail(N) setactivity(In Door #%RESP%) zap(%pbtemp%tagtmp.%node%,%nv%totalTime%) appendto(%pbtemp%tagtmp.%node%,%nv%totalfree%) Exit (80,door|) *bsel loadsub(control\macros\badsel.ctl) ;Clear Stack on Error! ;---PowerStak Block 3 setequal(/nvqueue=) ;---PowerStak Block 3 End goto (disp) *GOODBYE EnufSec(10) IfNotTrue(Goto(BSel)) LoadSub(CONTROL\MACROS\BYE.CTL) Goto(Disp) *MAIN LoadMem(CONTROL\MAIN.MNU) *EXP LoadSub(CONTROL\MACROS\EXPERT.CTL) Goto(Disp) *wipask setequal(y=90) loadsub(control\wipask.ctl) if (%nv%wiprestreq%)=(1) then goto (disp) if (%aresp%)<>(24) then goto (gb) loadsub(control\wipask.ctl,goto(twarn)) goto (wipask) *gb setEqual(/resp=%resp%) if (%resp%)=() then setequal(/resp=<CR>) writeln(%resp%) ret *OLHELP SetNv(atprompt=No) SetNv(helpoption=82) LoadSub(olhelp\olhelp.ctl) Goto(disp) *Anywhere Len(%RESP%) If(%ARESP%)<(2) then Goto(Bsel) LoadSub(control\macros\anywhere.ctl) Goto(disp) *GetCTLName SetNV(CtlFile=%CTLNAME%) *CTLLoop Find(%NV%CTLFILE%,\) If(%ARESP%)=(0) then Goto(DoneCTL) AddVar(%ARESP%+1=a) Len(%NV%CTLFILE%) AddVar(%ARESP%+-%VAR%A=b) Inc(b) Get(%NV%CTLFILE%,%VAR%A,%VAR%B) SetNv(CTLFILE=%ARESP%) Goto(CTLLoop) *DoneCTL Get(%NV%CTLFILE%,1,4) SetNv(prefix=%ARESP%) SetNv(CTLFILE=) Ret *exp0 if (%nv%wipmode%)=(1) then loadsub(control\exitwip.ctl) goto(prompt) MESSMNU┌*disp setnv(wiprestreq=) delimit( ,;) SetActivity (Message Menu) ;---PowerStak Block 1 len(%nv%queue%) notif (%aresp%) = (0) then setequal(/resp=%nv%queue%) goto(stk) ;If something in the stack then... endif ;---PowerStak Block 1 End--- *Disp2 setnv(didwip=) if (/:EXPERT/)=(Y) then goto (exp0) *sdisp if (%graphics%)<>(WIP) then setnv(wipmode=) if (%nv%wipmode%)=(1) then if (%nv%norefresh%)=(1) then setnv(jExec=1) setnv(file=mess) seek(display\mess/:sec/.ans) iftrue(setnv(file=mess/:sec/)) setnv(NoInfo=1) setnv(asciiequiv=1) loadsub(control\newdisp.ctl) setequal(c=07~Bar~Current Conference: /:lastmsg/:%areaname%~) if (%nv%wipmode%)=(1) then loadsub(control\okbox.ctl) *prompt setnv(norefresh=) if (/:Expert/)=(Y) then linefeed(1) Say(&14&(%AREANAME% Conference)) say (&0&$7$%CACT%$0$&15& %LEFT% Minutes Remain. Please select, %FNAME%&12&: &14&$0$*) if (%nv%didwip%)<>(1) then cask(%CRON%*) if (%nv%didwip%)=(1) then jump (wipask) ;---PowerStak Block 2 *stk menuequal(a=%resp%) DEQUEUE(a) setequal(/nvqueue=%var%a) setequal(/resp=%aresp%) ;---PowerStak Block 2 End--- Get(%RESP%,1,1) If(%ARESP%)=(/) then Goto(Anywhere) If(%ARESP%)=(?) then Goto(OlHelp) MenuEqual(/RESP=%RESP%) BigIf (U:UPK,D:DPK,G:GOODBYE,<CR>:SDISP,?:OLHELP,X:EXP,J:CHANGE,S:SEARCH,SEL:SELECT,COPY:COPY,SC:SCAN,Q:MAINMN,R:READMN,E:ENTERMN,F:FILESMN,A:SL0) goto (bsel) *Anywhere Len(%RESP%) If(%ARESP%)<(2) then Goto(Bsel) LoadSub(control\macros\anywhere.ctl) Goto(disp) *fm menuask(%NOCR%#: *) if (%resp%)=() then goto(disp) findms(%resp%) say( %aresp%) goto(fm) *bsel loadsub(control\macros\badsel.ctl) ;Clear Stack on Error! ;---PowerStak Block 3 setequal(/nvqueue=) ;---PowerStak Block 3 End goto (disp) *wipask setequal(y=90) loadsub(control\wipask.ctl) if (%nv%wiprestreq%)=(1) then goto (disp) if (%aresp%)<>(24) then goto (gb) loadsub(control\wipask.ctl,goto(twarn)) goto (wipask) *gb setEqual(/resp=%resp%) if (%resp%)=() then setequal(/resp=<CR>) writeln(%resp%) ret *exp0 if (%nv%wipmode%)=(1) then loadsub(control\exitwip.ctl) goto(prompt) *UPK LoadSub(CONTROL\MACROS\UPKT.CTL) Goto(Disp) *DPK LoadSub(CONTROL\MACROS\DPKT.CTL) Goto(Disp) *GOODBYE EnufSec(10) IfNotTrue(Goto(BSel)) LoadSub(CONTROL\MACROS\BYE.CTL) Goto(Disp) *OLHELP LoadSub(OLHELP\MESS.MNU) Goto(Disp) *EXP EnufSec(10) IfNotTrue(Goto(BSel)) LoadSub(CONTROL\MACROS\EXPERT.CTL) Goto(Disp) *CHANGE EnufSec(10) IfNotTrue(Goto(BSel)) LoadSub(CONTROL\MACROS\CHG.CTL) Goto(Disp) *SEARCH EnufSec(10) IfNotTrue(Goto(BSel)) LoadSub(CONTROL\MACROS\SEARCHM.CTL) Goto(Disp) *SELECT EnufSec(10) IfNotTrue(Goto(BSel)) LoadSub(CONTROL\MACROS\SELECT.CTL) Goto(Disp) *COPY EnufSec(100) IfNotTrue(Goto(BSel)) LoadSub(CONTROL\MACROS\MCOPY.CTL) Goto(Disp) *SCAN EnufSec(10) IfNotTrue(Goto(BSel)) LoadSub(CONTROL\MACROS\SCANM.CTL) Goto(Disp) *MAINMN EnufSec(10) IfNotTrue(Goto(BSel)) LoadMem(CONTROL\MAIN.MNU) *READMN EnufSec(10) IfNotTrue(Goto(BSel)) LoadSub(CONTROL\READ.CTL) Goto(Disp) *ENTERMN EnufSec(10) IfNotTrue(Goto(BSel)) LoadSub(CONTROL\MACROS\ENTER.CTL) Goto(Disp) *FILESMN EnufSec(10) IfNotTrue(Goto(BSel)) LoadMem(CONTROL\FILES.MNU) *SL0 LoadSub(CONTROL\MACROS\ABAND.CTL) Goto(Disp) BULLETMNUk*Disp setnv(wiprestreq=) DeLimit( ,;) SetActivity (Bulletins Menu) Seek(farea/:lastmsg/\bullet.mnu) IfTrue(Loadmem(farea/:lastmsg/\bullet.mnu)) ;---PowerStak Block 1 len(%nv%queue%) notif (%aresp%) = (0) then setequal(/resp=%nv%queue%) goto(stk) ;If something in the stack then... endif ;---PowerStak Block 1 End--- setnv(didwip=) if (/:EXPERT/)=(Y) then linefeed(1) If (/:EXPERT/)=(Y) Then Goto(Exp0) *Sdisp if (%graphics%)<>(WIP) then setnv(wipmode=) if (%nv%wipmode%)=(1) then if (%nv%norefresh%)=(1) then setnv(jExec=1) setnv(file=blt) seek(display\blt/:sec/.ans) iftrue(setnv(file=blt/:sec/)) setnv(NoInfo=1) setnv(asciiequiv=1) loadsub(control\newdisp.ctl) *Prompt setnv(norefresh=) DefPause($7$&0&[Send more text?]$0$&3& (&11&S&3&)top, (&11&N&3&)onstop or (&11&C&3&)ontinue?&12&: &7&) DefPif(s:stop,n:nonstop,g:goodbye) ;define our pause prompt... Jump(GETCTLNAME) say (&0&$7$%CACT%$0$&15& %LEFT% Minutes Remain. Please select, %FNAME%&12&: &14&$0$*) if (%nv%didwip%)<>(1) then menuask(%CRON%*) if (%nv%didwip%)=(1) then jump (wipask) If(%RESP%)=(<CR>) then Goto(Sdisp) ;---PowerStak Block 2 *stk menuequal(a=%resp%) DEQUEUE(a) setequal(/nvqueue=%var%a) setequal(/resp=%aresp%) ;---PowerStak Block 2 End--- Get(%RESP%,1,1) If(%ARESP%)=(/) then Goto(Anywhere) MenuEqual(/RESP=%RESP%) BigIf (Q:LOADMAIN,G:GOODBYE,X:EXPERT,?:OLHELP) Number(%RESP%) ;is it a number?! IfNotTrue ( Goto (bsel)) kill(display\blttmpl.wip) Log(--,Bulletin %RESP% Read.) seek(display\%NV%PREFIX%%resp%.wip) ifnottrue(if (%nv%wipmode%)=(1) then goto (wip)) Display (Display\%NV%PREFIX%%RESP%) enter goto (disp) *wip setnv(textfile=%NV%PREFIX%%resp%.asc) loadsub(control\ewipscr.ctl,setnv(wipf=blttmpl)) goto(disp) *bsel LoadSub(control\macros\badsel.ctl) ;Clear Stack on Error! ;---PowerStak Block 3 setequal(/nvqueue=) ;---PowerStak Block 3 End Goto (disp) *wipask setequal(y=90) loadsub(control\wipask.ctl) if (%nv%wiprestreq%)=(1) then goto (disp) if (%aresp%)<>(24) then goto (gb) loadsub(control\wipask.ctl,goto(twarn)) goto (wipask) *gb setEqual(/resp=%resp%) if (%resp%)=() then setequal(/resp=<CR>) writeln(%resp%) ret *GetCTLName SetNV(CtlFile=%CTLNAME%) *CTLLoop Find(%NV%CTLFILE%,\) If(%ARESP%)=(0) then Goto(DoneCTL) AddVar(%ARESP%+1=a) Len(%NV%CTLFILE%) AddVar(%ARESP%+-%VAR%A=b) Inc(b) Get(%NV%CTLFILE%,%VAR%A,%VAR%B) SetNv(CTLFILE=%ARESP%) Goto(CTLLoop) *DoneCTL Get(%NV%CTLFILE%,1,4) SetNv(prefix=%ARESP%) SetNv(CTLFILE=) Ret *Anywhere Len(%RESP%) If(%ARESP%)<(2) then Goto(Bsel) LoadSub(control\macros\anywhere.ctl) Goto(disp) *exp0 if (%nv%wipmode%)=(1) then loadsub(control\exitwip.ctl) goto(prompt) *LOADMAIN LoadMem(CONTROL\MAIN.MNU) *GOODBYE LoadSub(CONTROL\MACROS\BYE.CTL) Goto(Disp) *EXPERT LoadSub(CONTROL\MACROS\EXPERT.CTL) Goto(Disp) *OLHELP LoadSub(OLHELP\BULLET.MNU) Goto(Disp) WIPRUNCTLA *isithere0 fdate(WIP\RESOURCE\%nv%file%) setequal(d=%aresp%) seekrep(d,45,47) get(&d,1,1) if (%aresp%)=(0) then get(&d,2,1000) setequal(d=%aresp%) endif ftime(WIP\RESOURCE\%nv%file%) setnv(time=%aresp%) setequal(c=10~%nv%file%~%nv%time%~%var%d~) jump (wipc) comlineinput(60,l) if (%aresp%)=(24) then goto (isithere0) if (%resp%)=(1) then goto (execr) setequal(c=11~Z~) jump (wipc) exec(dsz.com port %port% speed %lbaud% sz WIP\RESOURCE\%nv%file%) secpause(1) flushout *execr setequal(c=0C~attach\%nv%file%~~) jump (wipc) return *GCHAR COMPRINT(%NV%TEXT%) SETEQUAL(A=0) DO COMKEY ASCII IF(%ARESP%)=(21) THEN GOTO(GCHAR) INC(A) IF(&B)=(-1) THEN IF (%RESP%)<>() THEN RET IF(%ARESP%)=(&B) THEN RET IF(&A)>(200) THEN RET IF(%RESP%)<>() THEN SETNV(PBACK=%NV%PBACK%%RESP%) DELAY18TH(2) LOOP *WIPC LOCALKEY(1) IFNOTTRUE(GOTO(NOLKEY)) SYSKEYCHECK SETEQUAL(/RESP=) SETEQUAL(/RESP=) *NOLKEY CCARRIER IF(%ARESP%)=(0) THEN GOTO (NOC0) CHECKSUM(%VAR%C) SETEQUAL(B=6) SETNV(TEXT=$%ARESP%%VAR%C%C%13%) SETNV(PBACK=) JUMP(GCHAR) if(%ARESP%)<>(6) THEN FLUSHOUT IF(%ARESP%)<>(6) THEN JUMP(GCHAR) setequal(c=%aresp%) SETEQUAL(/IBUFF=%NV%PBACK%) LEN(%NV%PBACK%) SETEQUAL(/IBUFF0=%ARESP%) SETEQUAL(/ARESP=%VAR%C) RET *NOC0 log(<<,Carrier lost.) quitbbs DOWNATTCTLsetactivity(Downloading Files) display (display\vwarn) If(%LOCAL%)=(TRUE) then Goto(lcl) *pickprot display (display\dnPROTS1) MenuAsk (&3&Which transfer protocol would you like to use?&12&: &15&*) if (%RESP%)=(Q) then goto (aborted) len(%RESP%) notif (%ARESP%)=(1) then goto (Pprob) ;no batch protocols allowed... find(%resp%,**) iftrue(setequal(/resp=Z)) seek(protocol\%RESP%-Ad.BT) iftrue (goto (Pok)) *pprob loadsub(control\macros\badsel.ctl) goto (pickprot) *Pok setequal(r=%RESP%) setequal(x=%MSGATTNAME%) size(%ATTPAT%%var%x) ttime(%ARESP%) cmpval(%TTIM%,/:LEFT/) if (%ARESP%)=(No) then goto (notenuftime) say(&11&) say(We're ready to send the file. Please start receiving now.) fixfile(protocol\%var%r-ad.bt,%pbtemp%%var%r-ad.bat) Kill(%pbtemp%%ATTn0%.%ATTEXT%) If(%STOREDEXT%)=() then fcopy(%ATTPAT%%ATTn0%.%ATTEXT%,%pbtemp%%ATTn0%.%ATTEXT%) NotIf(%STOREDEXT%)=() then fcopy(%ATTPAT%%ATTn0%.%STOREDEXT%,%pbtemp%%ATTn0%.%ATTEXT%) ;temporarily copy stored attach file into user-given attach filename ;Enter exec(%pbtemp%%var%r-ad.BAT│) Kill(%pbtemp%%ATTn0%.%ATTEXT%) *success notif (%ARESP%)=(0) then goto (aborted) log(--,Attach downloaded (%var%x)) display(display\attsucc1) Return *notenuftime display(display\NODLTIME) Return *aborted log(--,Attach download aborted (%var%x)) setequal(x=) flushout display(display\attabt1) Return *lcl menuask(&CR&&15&Please specify the path (e.g. C:\DLS\) for this file&12&: &14&*) setequal(k=10) initclock setequal(n=LOCAL) If(%STOREDEXT%)=() then fcopy(%ATTPAT%%ATTn0%.%ATTEXT%,%resp%\%ATTn0%.%ATTEXT%) NotIf(%STOREDEXT%)=() then fcopy(%ATTPAT%%ATTn0%.%STOREDEXT%,%resp%\%ATTn0%.%ATTEXT%) notif (%ARESP%)=(0) then goto (aborted) goto (success) BULLETSCTL~*00 If (%NEWSEC%)<>(/:SEC/) Then goto (notnew) if (%nv%wipmode%)<>(1) then display(display\NEWUSER1) if (%nv%wipmode%)<>(1) then goto (notnew) loadsub(control\ewipscr.ctl,setnv(wipf=newuser1)) *NotNew Get(/:BIRTH/,1,6) ;get 1st 6 chars of user's birthday SetEqual(a=%ARESP%) Get(%DATE%,1,6) ;get first 6 chars of date If (&a)=(%ARESP%) Then LoadSub(control\birth.ctl) ;if bday show scr if (/:LAST/)=(%date%) then goto (notfirst) if (%nv%wipmode%)<>(1) then goto (notwip4) loadsub(control\wipsound.ctl,setnv(file=welcome.wav)) *notwip4 if (%nv%wipmode%)<>(1) then display (Display\OneAday1) ;if first call today... if (%nv%wipmode%)<>(1) then goto (notfirst) loadsub(control\ewipscr.ctl,setnv(wipf=oneaday1)) *notfirst seek(areas\news/:lastmsg/.asc) iftrue(loadsub(control\macros\cnfnews.ctl)) loadsub(control\newdisp.ctl,setnv(file=%usern%)) ;loadsub(control\newdisp.ctl,setnv(file=quik)) If (/:EXPERT/)=(Y) Then loadsub(control\newdisp.ctl,setnv(file=EXPERT)) Seek(logon.bat) IfTrue (Exec(logon.bat)) ;run LOGON.BAT batch file. if (%Event%)=(TRUE) then loadsub(control\newdisp.ctl,setnv(file=event)) ;if (%SEC%)=(10) then loadmem(control\newu.mnu) LoadSub(Control\Macros\Newbull.ctl) ;show new bulletins IfNotTrue(LoadMem(control\Main.mnu)) if (%aresp%)=(NONE) then loadmem(control\main.mnu) LoadMem(Control\ViewB.ctl) ;ask "view bulletins menu?" MSCANCTL╨Say(&CR&&15&Scanning for new mail. &10&Press (SPACE) to Quit.&CR&) Clearmem EraseVar Say(&15&Scanning...%White%) setnv(lconf=/:lastmsg/) SetEqual(h=0) *restart if (%nv%wipmode%)=(1) then setnv(NoInfo=1) loadsub(control\ewipscr.ctl,setnv(wipf=mscan)) endif *st0 ClearMem *stscan inc(h) SelArea(%var%h) EnufSec(%AREASEC%) ifnottrue(Goto (chkeof)) comkey if (%resp%)=(s) then goto (firstmn) if (%resp%)=(t) then goto (firstmn) if (%resp%)=(o) then goto (firstmn) if (%resp%)=(p) then goto (firstmn) if (%resp%)=( ) then goto (firstmn) if (%nv%wipmode%)=(1) then setequal(c=07~nosel1~%var%h %AREANAME%) jump (wipc) setequal(c=0A~) jump (wipc) endif Scan(%var%h,%NAME%,%USERN%,%var%h %AREANAME%|,60) IfTrue (goto (yesmail)) localkey(1) if (%aresp%)=( ) then goto (firstmn) *chkeof If (&h)=(%MAXAREA%) Then goto (firstmn) Goto (stscan) *FIRSTMN flushout setequal(/lastmsg=%nv%lconf%) setnv(lconf=) SelArea(/:LASTMSG/) if (%nv%wipmode%)=(1) then setequal(c=07~nosel1~Scan Complete!~) jump (wipc) endif Say(%Yellow%&CR&&CR&Message scan complete!) SetEqual (/WAIT=N) LoadMem(control\bullets.ctl) *yesmail SetEqual (/lastmsg=%var%h) if (%nv%wipmode%)<>(1) then Say(&CR&&15&Mail has been found for you in the&9& %AREANAME% %hWhite%conference!%hWhite%) SetEqual(u=2) notif (^2)=() then goto (ym1) setnv(wtext=Message number ^:1^) if (%nv%wipmode%)<>(1) then say(&10&Message number &11&^:1^) goto (bymail) *ym1 setnv(wtext=Message numbers: ^:1^) if (%nv%wipmode%)<>(1) then say(&10&Message numbers:&11&&CR&^:1^*) *ymail setequal(z=^:u^) if (%var%z)=() then Goto (bym2) if (%nv%wipmode%)<>(1) then Say(, ^:u^*) setnv(wtext=%nv%wtext%, ^:u^) inc(u) Goto (ymail) *bym2 linefeed(1) *bymail setnv(hi=%var%h) if (%nv%wipmode%)<>(1) then goto (nowip) writeln () setnv(Ctext=%nv%wtext%) setnv(Qtext=Would you like to read these messages?) jump (yesno2) *nowip if (%nv%wipmode%)<>(1) then flushout Say(&CR&&15&Would you like to read these messages? (&12&Y&15&/&12&N&15&)&14&*) back(4) YesNoAsk(*) endif If (%RESP%)=(Yes) Then Goto (Rmail) if (%nv%wipmode%)<>(1) then goto (back) if (%var%h)=>(%maxarea%) then goto (firstmn) if (%nv%wipmode%)=() then goto (st0) setequal(c=0A~) jump (wipc) goto(st0) *back setequal(h=%nv%hi%) setnv(hi=) if (%nv%wipmode%)<>(1) then ClearScr InitTxt if (%var%h)=>(%MAXAREA%) then goto (firstmn) if (%nv%wipmode%)=(1) then goto (restart) Say(%Yellow%&CR&Scanning...%White%) ClearMem SetActivity(Logging on...) Goto (chkeof) *Rmail Say(&CR&%hCyan%Please wait while we retrieve your mail...*) SetEqual(r=10) SetEqual(y=^:1^) himsg(/:LASTMSG/) SetEqual(f=%ARESP%) lowmsg(/:lastmsg/) SetEqual(n=%ARESP%) SetEqual(u=1) setequal(/nvsnsearch=1) If(/:GRAPHICS/)=(ASCII) then LoadSub(control\READ.CTL,Goto (repeat)) if (%nv%wipmode%)=(1) then goto (wipInBox) NotIf(/:GRAPHICS/)=(ASCII) then Loadsub(control\READl.CTL,Goto (repeat)) goto (back) *wipInBox loadsub(control\readlwip.ctl,goto(repeat)) goto(back) *GCHAR COMPRINT(%NV%TEXT%) SETEQUAL(A=0) DO COMKEY ASCII IF(%ARESP%)=(21) THEN GOTO(GCHAR) INC(A) IF(&B)=(-1) THEN IF (%RESP%)<>() THEN RET IF(%ARESP%)=(&B) THEN RET IF(&A)>(45) THEN RET IF(%RESP%)<>() THEN SETNV(PBACK=%NV%PBACK%%RESP%) DELAY18TH(2) LOOP *WIPC LOCALKEY(1) IFNOTTRUE(GOTO(NOLKEY)) SYSKEYCHECK SETEQUAL(/RESP=) SETEQUAL(/RESP=) *NOLKEY CCARRIER IF(%ARESP%)=(0) THEN GOTO (NOC0) CHECKSUM(%VAR%C) SETEQUAL(B=6) SETNV(TEXT=$%ARESP%%VAR%C%C%13%) SETNV(PBACK=) JUMP(GCHAR) IF(%ARESP%)<>(6) THEN JUMP(GCHAR) SETEQUAL(/IBUFF=%NV%PBACK%) LEN(%NV%PBACK%) SETEQUAL(/IBUFF0=%ARESP%) RET *NOC0 log(<<,Carrier lost.) quitbbs *yesno2 flushout if (%nv%wipmode%)<>(1) then goto (nwYn) writeln(Y/N Question: %nv%Qtext%) setequal(c=13~%nv%Ctext% %nv%Qtext%~Mail Found!~2~) jump (wipc) *gi2 comlineinput(180,l) if (%aresp%)=(24) then log(<<,User did not press a key for a while. Timeout) display(display\timeout) quitbbs endif *tryr setequal(r=%resp%) ascii if (%aresp%)=(21) then goto (yesno2) if (%aresp%)=(6) then len(%var%r) if (%aresp%)=(1) then goto (gi2) get(&r,2,1000) setequal(/resp=%aresp%) goto (tryr) endif if (%resp%)=(2) then setequal(/resp=Yes) if (%resp%)=(3) then setequal(/resp=No) ret *nwyn say(&15&%nv%Ctext%&CR&) Say(&15&%nv%Qtext% *) *yesno Say(&15&(&12&Y&15&/&12&N&15&)&14&*) Back(4) YesNoAsk(*) ret QUESTYP┴ *disp delimit( ,;) setnv(wiprestreq=) SetActivity (Unnamed Menu) ;---PowerStak Block 1 len(%nv%queue%) notif (%aresp%) = (0) then setequal(/resp=%nv%queue%) goto(stk) ;If something in the stack then... endif ;---PowerStak Block 1 End--- setnv(didwip=) if (/:Expert/)=(Y) then linefeed(1) if (/:EXPERT/)=(Y) then goto (exp0) *sdisp if (%graphics%)<>(WIP) then setnv(wipmode=) if (%nv%wipmode%)=(1) then if (%nv%norefresh%)=(1) then setnv(jExec=1) setnv(file=ques) seek(display\ques/:sec/.ans) iftrue(setnv(file=ques/:sec/)) setnv(NoInfo=1) setnv(asciiequiv=1) loadsub(control\newdisp.ctl) *prompt setnv(norefresh=) say (&0&$7$%CACT%$0$&15& %LEFT% Minutes Remain. Please select, %FNAME%&12&: &14&$0$*) if (%nv%didwip%)<>(1) then cask(%CRON%*) if (%nv%didwip%)=(1) then jump (wipask) ;---PowerStak Block 2 *stk setequal(a=%resp%) DEQUEUE(a) setequal(/nvqueue=%var%a) setequal(/resp=%aresp%) ;---PowerStak Block 2 End--- Get(%RESP%,1,1) If(%ARESP%)=(/) then Goto(Anywhere) If(%ARESP%)=(?) then Goto(OlHelp) MenuEqual(/RESP=%RESP%) BigIf (G:GOODBYE,Q:MAIN,?:OLHELP,<CR>:SDISP,X:EXP) number(%RESP%) if (%ARESP%)=(No) then goto (bsel) say(&7&) seek(ques\QUEST%RESP%.que) if (%ARESP%)=(No) then goto (bsel) setnv(wipe=) if (%nv%wipmode%)=(1) then loadsub(control\exitwip.ctl) loadsub(ques\QUEST%RESP%.que) if (%nv%wipe%)=() then goto (disp) setnv(wipe=) setnv(wipmode=1) goto (disp) loadsub(ques\QUEST%RESP%.que) goto (disp) *bsel loadsub(control\macros\badsel.ctl) ;Clear Stack on Error! ;---PowerStak Block 3 setequal(/nvqueue=) ;---PowerStak Block 3 End goto (disp) *GOODBYE EnufSec(10) IfNotTrue(Goto(BSel)) LoadSub(CONTROL\MACROS\BYE.CTL) Goto(Disp) *MAIN LoadMem(CONTROL\MAIN.MNU) *HELP Display(display\help\ques,/:SEC/) Log (--,Viewed Quest. Menu Help) Goto (Disp) *EXP LoadSub(CONTROL\MACROS\EXPERT.CTL) Goto(Disp) *wipask setequal(y=90) loadsub(control\wipask.ctl) if (%nv%wiprestreq%)=(1) then goto (disp) if (%aresp%)<>(24) then goto (gb) loadsub(control\wipask.ctl,goto(twarn)) goto (wipask) *gb setEqual(/resp=%resp%) if (%resp%)=() then setequal(/resp=<CR>) writeln(%resp%) ret *OLHELP SetNv(atprompt=No) SetNv(helpoption=88) LoadSub(olhelp\olhelp.ctl) Goto(disp) *Anywhere Len(%RESP%) If(%ARESP%)<(2) then Goto(Bsel) LoadSub(control\macros\anywhere.ctl) Goto(disp) *exp0 if (%nv%wipmode%)=(1) then loadsub(control\exitwip.ctl) goto(prompt) DOORSTYP║*disp SetActivity (Unnamed Menu) setnv(wiprestreq=) Seek(farea/:lastmsg/\doors.mnu) IfTrue(loadmem(farea/:lastmsg/\doors.mnu)) delimit( ,;) ;---PowerStak Block 1 len(%nv%queue%) notif (%aresp%) = (0) then setequal(/resp=%nv%queue%) goto(stk) ;If something in the stack then... endif ;---PowerStak Block 1 End--- setnv(didwip=) if (/Expert)=(Y) then linefeed(1) if (/EXPERT)=(Y) then goto (exp0) *sdisp if (%graphics%)<>(WIP) then setnv(wipmode=) if (%nv%wipmode%)=(1) then if (%nv%norefresh%)=(1) then setnv(jExec=1) setnv(file=doors) seek(display\doors/:sec/.ans) iftrue(setnv(file=doors/:sec/)) setnv(NoInfo=1) setnv(asciiequiv=1) loadsub(control\newdisp.ctl) *prompt setnv(norefresh=) Jump(GETCTLNAME) say (&0&$7$%CACT%$0$&15& %LEFT% Minutes Remain. Please select, %FNAME%&12&: &14&$0$*) if (%nv%didwip%)<>(1) then cask(%CRON%*) if (%nv%didwip%)=(1) then jump (wipask) ;---PowerStak Block 2 *stk setequal(a=%resp%) DEQUEUE(a) setequal(/nvqueue=%var%a) setequal(/resp=%aresp%) ;---PowerStak Block 2 End--- Get(%RESP%,1,1) If(%ARESP%)=(/) then Goto(Anywhere) If(%ARESP%)=(?) then Goto(OlHelp) MenuEqual(/RESP=%RESP%) BigIf (G:GOODBYE,Q:MAIN,?:OLHELP,<CR>:SDISP,X:EXP) number(%RESP%) ifNotTrue( goto (bsel)) seek(%NV%PREFIX%%RESP%.Bat) ifnottrue(goto (bsel)) clearscr Display(Display\%NV%PREFIX%%RESP%) Log(--,Executing Door #%RESP%) FixFile (door.bt,door.bat) setequal (a=/:DOORS/) inc(a) setequal(/DOORSE=%VAR%A) if (%nv%wipmode%)=(1) then loadsub(control\exitwip.ctl) Say(&14&&CR&Please wait, Opening Door #%resp% . . .*) mcavail(N) setactivity(In Door #%RESP%) zap(%pbtemp%tagtmp.%node%,%nv%totalTime%) appendto(%pbtemp%tagtmp.%node%,%nv%totalfree%) Exit (80,door|) *bsel loadsub(control\macros\badsel.ctl) ;Clear Stack on Error! ;---PowerStak Block 3 setequal(/nvqueue=) ;---PowerStak Block 3 End goto (disp) *GOODBYE EnufSec(10) IfNotTrue(Goto(BSel)) LoadSub(CONTROL\MACROS\BYE.CTL) Goto(Disp) *MAIN LoadMem(CONTROL\MAIN.MNU) *EXP LoadSub(CONTROL\MACROS\EXPERT.CTL) Goto(Disp) *wipask setequal(y=90) loadsub(control\wipask.ctl) if (%nv%wiprestreq%)=(1) then goto (disp) if (%aresp%)<>(24) then goto (gb) loadsub(control\wipask.ctl,goto(twarn)) goto (wipask) *gb setEqual(/resp=%resp%) if (%resp%)=() then setequal(/resp=<CR>) writeln(%resp%) ret *OLHELP SetNv(atprompt=No) SetNv(helpoption=82) LoadSub(olhelp\olhelp.ctl) Goto(disp) *Anywhere Len(%RESP%) If(%ARESP%)<(2) then Goto(Bsel) LoadSub(control\macros\anywhere.ctl) Goto(disp) *GetCTLName SetNV(CtlFile=%CTLNAME%) *CTLLoop Find(%NV%CTLFILE%,\) If(%ARESP%)=(0) then Goto(DoneCTL) AddVar(%ARESP%+1=a) Len(%NV%CTLFILE%) AddVar(%ARESP%+-%VAR%A=b) Inc(b) Get(%NV%CTLFILE%,%VAR%A,%VAR%B) SetNv(CTLFILE=%ARESP%) Goto(CTLLoop) *DoneCTL Get(%NV%CTLFILE%,1,4) SetNv(prefix=%ARESP%) SetNv(CTLFILE=) Ret *exp0 if (%nv%wipmode%)=(1) then loadsub(control\exitwip.ctl) goto(prompt) BULLETTYPi*Disp setnv(wiprestreq=) DeLimit( ,;) SetActivity (Unnamed Menu) Seek(farea/:lastmsg/\bullet.mnu) IfTrue(Loadmem(farea/:lastmsg/\bullet.mnu)) ;---PowerStak Block 1 len(%nv%queue%) notif (%aresp%) = (0) then setequal(/resp=%nv%queue%) goto(stk) ;If something in the stack then... endif ;---PowerStak Block 1 End--- setnv(didwip=) if (/:EXPERT/)=(Y) then linefeed(1) If (/:EXPERT/)=(Y) Then Goto(Exp0) *Sdisp if (%graphics%)<>(WIP) then setnv(wipmode=) if (%nv%wipmode%)=(1) then if (%nv%norefresh%)=(1) then setnv(jExec=1) setnv(file=blt) seek(display\blt/:sec/.ans) iftrue(setnv(file=blt/:sec/)) setnv(NoInfo=1) setnv(asciiequiv=1) loadsub(control\newdisp.ctl) *Prompt setnv(norefresh=) DefPause($7$&0&[Send more text?]$0$&3& (&11&S&3&)top, (&11&N&3&)onstop or (&11&C&3&)ontinue?&12&: &7&) DefPif(s:stop,n:nonstop,g:goodbye) ;define our pause prompt... Jump(GETCTLNAME) say (&0&$7$%CACT%$0$&15& %LEFT% Minutes Remain. Please select, %FNAME%&12&: &14&$0$*) if (%nv%didwip%)<>(1) then menuask(%CRON%*) if (%nv%didwip%)=(1) then jump (wipask) If(%RESP%)=(<CR>) then Goto(Sdisp) ;---PowerStak Block 2 *stk menuequal(a=%resp%) DEQUEUE(a) setequal(/nvqueue=%var%a) setequal(/resp=%aresp%) ;---PowerStak Block 2 End--- Get(%RESP%,1,1) If(%ARESP%)=(/) then Goto(Anywhere) MenuEqual(/RESP=%RESP%) BigIf (Q:LOADMAIN,G:GOODBYE,X:EXPERT,?:OLHELP) Number(%RESP%) ;is it a number?! IfNotTrue ( Goto (bsel)) kill(display\blttmpl.wip) Log(--,Bulletin %RESP% Read.) seek(display\%NV%PREFIX%%resp%.wip) ifnottrue(if (%nv%wipmode%)=(1) then goto (wip)) Display (Display\%NV%PREFIX%%RESP%) enter goto (disp) *wip setnv(textfile=%NV%PREFIX%%resp%.asc) loadsub(control\ewipscr.ctl,setnv(wipf=blttmpl)) goto(disp) *bsel LoadSub(control\macros\badsel.ctl) ;Clear Stack on Error! ;---PowerStak Block 3 setequal(/nvqueue=) ;---PowerStak Block 3 End Goto (disp) *wipask setequal(y=90) loadsub(control\wipask.ctl) if (%nv%wiprestreq%)=(1) then goto (disp) if (%aresp%)<>(24) then goto (gb) loadsub(control\wipask.ctl,goto(twarn)) goto (wipask) *gb setEqual(/resp=%resp%) if (%resp%)=() then setequal(/resp=<CR>) writeln(%resp%) ret *GetCTLName SetNV(CtlFile=%CTLNAME%) *CTLLoop Find(%NV%CTLFILE%,\) If(%ARESP%)=(0) then Goto(DoneCTL) AddVar(%ARESP%+1=a) Len(%NV%CTLFILE%) AddVar(%ARESP%+-%VAR%A=b) Inc(b) Get(%NV%CTLFILE%,%VAR%A,%VAR%B) SetNv(CTLFILE=%ARESP%) Goto(CTLLoop) *DoneCTL Get(%NV%CTLFILE%,1,4) SetNv(prefix=%ARESP%) SetNv(CTLFILE=) Ret *Anywhere Len(%RESP%) If(%ARESP%)<(2) then Goto(Bsel) LoadSub(control\macros\anywhere.ctl) Goto(disp) *exp0 if (%nv%wipmode%)=(1) then loadsub(control\exitwip.ctl) goto(prompt) *LOADMAIN LoadMem(CONTROL\MAIN.MNU) *GOODBYE LoadSub(CONTROL\MACROS\BYE.CTL) Goto(Disp) *EXPERT LoadSub(CONTROL\MACROS\EXPERT.CTL) Goto(Disp) *OLHELP LoadSub(OLHELP\BULLET.MNU) Goto(Disp) GENTYP╚*Disp setnv(wiprestreq=) delimit( ,;) SetActivity (Unnamed Menu) ;---PowerStak Block 1 len(%nv%queue%) notif (%aresp%) = (0) then setequal(/resp=%nv%queue%) goto(stk) ;If something in the stack then... endif ;---PowerStak Block 1 End--- *Disp2 setnv(didwip=) if(/:EXPERT/)=(Y) then linefeed(1) if(/:EXPERT/)=(Y) then Goto (exp0) *sdisp if (%graphics%)<>(WIP) then setnv(wipmode=) if (%nv%wipmode%)=(1) then if (%nv%norefresh%)=(1) then setnv(jExec=1) SetNv (File=main) Seek (display\main/:sec/.ans) IfTrue (SetNv(file=main/:sec/)) SetNv (NoInfo=1) setnv (asciiequiv=1) LoadSub (Control\NewDisp.Ctl) *Prompt setnv(norefresh=) Say(&14&(%AREANAME% Conference)) Say (%CRON%&0&$7$%CACT%$0$&15& %LEFT% Minutes Remain. Please select, %FNAME%&12&: &14&$0$*) if (%nv%didwip%)<>(1) then cask (%CRON%*) if (%nv%didwip%)=(1) then jump (wipask) ;---PowerStak Block 2 *stk menuequal(a=%resp%) DEQUEUE(a) setequal(/nvqueue=%var%a) setequal(/resp=%aresp%) ;---PowerStak Block 2 End--- Get(%RESP%,1,1) If(%ARESP%)=(/) then Goto(Anywhere) ;if global command MenuEqual(/RESP=%RESP%) BigIf (G:BYE,?:OLHELP,<CR>:SDISP,X:EXP,P:PAGE,Y:STATS,N:NEWS,C:CMNT,B:BMN,Q:QMN,F:FMN,M:MMN,D:DMN,L:LIST,@:SMN,WHO:WHO,CHAT:CHAT,FIND:FND,BANK:BNK,S:SL0) Number(%RESP%) IfTrue(goto(ChgConf)) Goto (bsel) *Anywhere Len(%RESP%) If(%ARESP%)<(2) then Goto(Bsel) LoadSub(control\macros\anywhere.ctl) Goto(disp) *bSel LoadSub(control\macros\badsel.ctl) ;Clear Stack on Error! ;---PowerStak Block 3 setequal(/nvqueue=) ;---PowerStak Block 3 End Goto (disp) *ChgConf SetEqual(z=%RESP%) LoadSub(control\macros\CHGZ.CTL) Goto(disp) *LogonPage SetEqual(/PAGE=No) Goto(PAGE) *wipask setequal(y=90) loadsub(control\wipask.ctl) if (%nv%wiprestreq%)=(1) then goto (disp) if (%aresp%)<>(24) then goto (gb) loadsub(control\wipask.ctl,goto(twarn)) goto (wipask) *gb setEqual(/resp=%resp%) if (%resp%)=() then setequal(/resp=<CR>) writeln(%resp%) ret *exp0 if (%nv%wipmode%)=(1) then loadsub(control\exitwip.ctl) goto(prompt) *SL1 EnufSec(10) IfNotTrue(Goto(BSel)) LoadSub(CONTROL\ONHELP.CTL) Goto(Disp) *SL2 EnufSec(10) IfNotTrue(Goto(BSel)) LoadSub(CONTROL\FIRST.CTL) Goto(Disp) *DQ SetEqual(q=) SetEqual(l=0) Goto(Disp) *BYE EnufSec(10) IfNotTrue(Goto(BSel)) LoadSub(CONTROL\MACROS\BYE.CTL) Goto(Disp) *OLHELP LoadSub(OLHELP\MAIN.MNU) Goto(Disp) *EXP EnufSec(10) IfNotTrue(Goto(BSel)) LoadSub(CONTROL\MACROS\EXPERT.CTL) Goto(Disp) *PAGE EnufSec(10) IfNotTrue(Goto(BSel)) LoadSub(CONTROL\MACROS\PAGE.CTL) Goto(Disp) *STATS EnufSec(10) IfNotTrue(Goto(BSel)) LoadSub(CONTROL\MACROS\STATS.CTL) Goto(Disp) *NEWS EnufSec(10) IfNotTrue(Goto(BSel)) LoadSub(CONTROL\MACROS\NEWS.CTL) Goto(Disp) *CMNT EnufSec(10) IfNotTrue(Goto(BSel)) LoadSub(CONTROL\MACROS\COMMENT.CTL) Goto(Disp) *BMN EnufSec(10) IfNotTrue(Goto(BSel)) LoadMem(CONTROL\BULLET.MNU) *QMN EnufSec(10) IfNotTrue(Goto(BSel)) LoadMem(CONTROL\QUES.MNU) *FMN EnufSec(10) IfNotTrue(Goto(BSel)) LoadMem(CONTROL\FILES.MNU) *MMN EnufSec(10) IfNotTrue(Goto(BSel)) LoadMem(CONTROL\MESS.MNU) *DMN EnufSec(20) IfNotTrue(Goto(BSel)) LoadMem(CONTROL\DOORS.MNU) *LIST EnufSec(110) IfNotTrue(Goto(BSel)) LoadSub(CONTROL\MACROS\LIST.CTL) Goto(Disp) *SMN EnufSec(100) IfNotTrue(Goto(BSel)) LoadMem(CONTROL\SYSOP.MNU) *WHO EnufSec(20) IfNotTrue(Goto(BSel)) LoadSub(CONTROL\MACROS\MWHO.CTL) Goto(Disp) *CHAT EnufSec(20) IfNotTrue(Goto(BSel)) LoadSub(CONTROL\MACROS\MCHAT.CTL) Goto(Disp) *FND LoadSub(CONTROL\MACROS\FIND.CTL) Goto(Disp) *BNK EnufSec(20) IfNotTrue(Goto(BSel)) LoadSub(CONTROL\MACROS\BANK.CTL) Goto(Disp) *SL0 EnufSec(10) IfNotTrue(Goto(BSel)) LoadSub(CONTROL\MACROS\SYSINFO.CTL) Goto(Disp) FILESMNUX *disp delimit( ,;) SetActivity (Files Menu) setnv(wiprestreq=) ;---PowerStak Block 1 len(%nv%queue%) notif (%aresp%) = (0) then setequal(/resp=%nv%queue%) goto(stk) ;If something in the stack then... endif ;---PowerStak Block 1 End--- setnv(didwip=) if (/:expert/)=(Y) then linefeed(1) if (/:EXPERT/)=(Y) then goto (exp0) *sdisp if (%graphics%)<>(WIP) then setnv(wipmode=) if (%nv%wipmode%)=(1) then if (%nv%norefresh%)=(1) then setnv(jExec=1) setnv(file=file) seek(display\file/:sec/.ans) iftrue(setnv(file=file/:sec/)) setnv(NoInfo=1) setnv(asciiequiv=1) loadsub(control\newdisp.ctl) setequal(c=07~Bar~Conference: /:lastmsg/:%areaname% - File Area /:lastdown/:%filname%~) if (%nv%wipmode%)=(1) then loadsub(control\okbox.ctl) *prompt setnv(norefresh=) Say(&14&(/:LASTMSG/:%FILNAME%)) say (&0&$7$%CACT%$0$&15& %LEFT% Minutes Remain. Please select, %FNAME%&12&: &14&$0$*) if (%nv%didwip%)<>(1) then cask(%CRON%*) if (%nv%didwip%)=(1) then jump (wipask) ;---PowerStak Block 2 *stk menuequal(a=%resp%) DEQUEUE(a) setequal(/nvqueue=%var%a) setequal(/resp=%aresp%) ;---PowerStak Block 2 End--- Get(%RESP%,1,1) If(%ARESP%)=(/) then Goto(Anywhere) If(%ARESP%)=(?) then Goto(OLHelp) MenuEqual(/RESP=%RESP%) BigIf (G:GOODBYE,?:OLHELP,<CR>:SDISP,X:EXP,Q:MAIN,C:CHANGE,L:LIST,R:READ,V:ZVIEW,N:NEW,D:DOWN,U:UP,M:MOVE,J:JOIN,S:SEARCH,W:WILD,A:ABAND,E:EDTAG) *bsel loadsub(control\macros\badsel.ctl) ;Clear Stack on Error! ;---PowerStak Block 3 setequal(/nvqueue=) ;---PowerStak Block 3 End goto(disp) *wipask setequal(y=90) loadsub(control\wipask.ctl) if (%nv%wiprestreq%)=(1) then goto (disp) if (%aresp%)<>(24) then goto (gb) loadsub(control\wipask.ctl,goto(twarn)) goto (wipask) *gb setEqual(/resp=%resp%) if (%resp%)=() then setequal(/resp=<CR>) writeln(%resp%) ret *Anywhere Len(%RESP%) If(%ARESP%)<(2) then Goto(Bsel) LoadSub(control\macros\anywhere.ctl) Goto(disp) *exp0 if (%nv%wipmode%)=(1) then loadsub(control\exitwip.ctl) goto(prompt) *GOODBYE EnufSec(10) IfNotTrue(Goto(BSel)) LoadSub(CONTROL\MACROS\BYE.CTL) Goto(Disp) *OLHELP LoadSub(OLHELP\FILES.MNU) Goto(Disp) *EXP EnufSec(10) IfNotTrue(Goto(BSel)) LoadSub(CONTROL\MACROS\EXPERT.CTL) Goto(Disp) *MAIN EnufSec(10) IfNotTrue(Goto(BSel)) LoadMem(CONTROL\MAIN.MNU) *CHANGE EnufSec(10) IfNotTrue(Goto(BSel)) LoadSub(CONTROL\MACROS\CHANGE.CTL) Goto(Disp) *LIST EnufSec(10) IfNotTrue(Goto(BSel)) LoadSub(CONTROL\MACROS\FLIST.CTL) Goto(Disp) *READ EnufSec(10) IfNotTrue(Goto(BSel)) LoadSub(CONTROL\MACROS\FREAD.CTL) Goto(Disp) *ZVIEW EnufSec(10) IfNotTrue(Goto(BSel)) LoadSub(CONTROL\MACROS\ZVIEW.CTL) Goto(Disp) *NEW EnufSec(10) IfNotTrue(Goto(BSel)) LoadSub(CONTROL\MACROS\NEW.CTL) Goto(Disp) *DOWN EnufSec(10) IfNotTrue(Goto(BSel)) LoadSub(CONTROL\MACROS\DOWN.CTL) Goto(Disp) *UP EnufSec(10) IfNotTrue(Goto(BSel)) LoadSub(CONTROL\MACROS\UP.CTL) Goto(Disp) *MOVE EnufSec(90) IfNotTrue(Goto(BSel)) LoadSub(CONTROL\MACROS\MOVE.CTL) Goto(Disp) *JOIN EnufSec(10) IfNotTrue(Goto(BSel)) LoadSub(CONTROL\MACROS\CHG.CTL) Goto(Disp) *SEARCH EnufSec(10) IfNotTrue(Goto(BSel)) LoadSub(CONTROL\MACROS\SEARCH.CTL) Goto(Disp) *WILD LoadSub(CONTROL\MACROS\WSEARCH.CTL) Goto(Disp) *ABAND EnufSec(10) IfNotTrue(Goto(BSel)) LoadSub(CONTROL\MACROS\ABAND.CTL) Goto(Disp) *EDTAG LoadSub(CONTROL\MACROS\DELTAG.CTL) Goto(Disp)